Windows di browser tanpa registrasi dan SMS - ikhtisar klien HTML5 RDP


Sekali waktu, ketika pohon-pohon tinggi, dan saya adalah seorang administrator sistem muda dan hijau, saya memiliki kesempatan untuk mengimplementasikan server terminal pada Windows 2000. Saya kemudian berpikir bahwa akan lebih baik jika tidak ada klien terpisah yang diperlukan untuk terhubung ke server. Seiring waktu berlalu, pohon-pohon tumbuh, rusa di sweater melepaskan tanduk mereka, dan saya - janggut, solusi untuk bekerja di terminal melalui browser mulai muncul di pasar. Tetapi mereka tidak stabil, atau mahal, dan implementasi percobaan berjalan jauh.


Sedikit waktu berlalu, rambut beruban muncul di janggut, dan ada banyak lagi solusi berbasis HTML5. Dan saya ingin membuat tinjauan singkat tentang opsi gratis - baik untuk administrator sistem pemula, dan bagi mereka yang melewatkan titik ini, seperti saya.


Jadi, apakah Anda ingin membiarkan karyawan terminalki melalui browser atau mengelola server melaluinya? Selamat datang di kucing.


Kenyamanan menghubungkan tanpa klien individu sulit ditaksir terlalu tinggi - ada browser di hampir semua perangkat pengguna. Selain kenyamanan pengguna, ada aspek keamanan: karena klien seperti itu adalah layanan web, jauh lebih mudah untuk melindunginya. Memang, mengeluarkan RDP klasik dengan kerentanan menarik cukup berbahaya, bekerja melalui VPN tidak selalu nyaman, dan layanan fail2ban dan bantuan port non-standar, tetapi tidak memberikan perlindungan 100%. Sementara layanan web dapat dilindungi oleh otorisasi sertifikat dan metode otentikasi dua faktor lainnya.


Dipercaya bahwa menggunakan RDS-Gateway dengan membungkus lalu lintas RDP melalui HTTPS dan menginstal sertifikat pada klien adalah perlindungan yang baik. Bahkan, ini tidak demikian - pemasangan sertifikat untuk RDS-Gateway diperlukan untuk mengotentikasi bukan klien, tetapi server. Anda dapat memverifikasi ini dengan mencoba menghubungkan ke klien RDP pihak ketiga. Tentu saja, beberapa bot yang mencari RDP terbuka akan tersingkir dengan cara ini. Tetapi solusi fail2ban juga diperlukan dalam kasus ini.

Saya akan meninggalkan pengaturan keamanan di luar cakupan artikel ini dan beralih ke contoh implementasi spesifik. Kami akan menguji pada server terminal berbasis Windows Server 2019, kami akan menggunakan 1C 7,7 sebagai aplikasi untuk memeriksa RemoteApp. Karena kita bisa.


Belum lama berselang, Microsoft akhirnya merilis solusi untuk menghubungkan ke RDP melalui browser. Mari kita mulai dengannya.


Klien Web Remote Desktop Microsoft


Instalasi dan konfigurasi klien dijelaskan secara rinci dalam dokumentasi , saya akan memberikan langkah-langkah dasar di bawah spoiler.


Instalasi klien dari MS.

Persiapan . Peran Remote Desktop Gateway dan / atau broker koneksi harus diberi sertifikat yang dipercaya oleh klien. Ya, hampir sama seperti selama operasi normal klien RDP melalui https. Anda dapat memiliki sertifikat tepercaya publik, Anda dapat menggunakan CA internal, dan untuk tujuan pengujian Anda dapat menggunakan yang ditandatangani sendiri.


Anda mungkin perlu meningkatkan modul PowerShellGet terlebih dahulu.


Ini dilakukan oleh perintah:


Install-Module -Name PowerShellGet -Force 

Setelah itu, Anda perlu me-restart konsol, dan untuk menginstal klien itu sudah cukup untuk menjalankan perintah:


 Install-Module -Name RDWebClientManagement Install-RDWebClientPackage 

Dalam prosesnya, Nuget dapat diunduh untuk menginstal modul dari repositori, server harus terhubung ke Internet. Ya, Windows sudah matang dan dapat repositori.


Sekarang Anda perlu mengkonfigurasi sertifikat untuk klien ini. Ini dilakukan oleh perintah:


 Import-RDWebClientBrokerCert cert.cer 

Di mana cert.cer adalah jalur ke sertifikat broker desktop jarak jauh dalam format cer.


Sekarang Anda dapat mempublikasikan klien dengan perintah:


 Publish-RDWebClientPackage -Type Production -Latest 

Setelah instalasi, klien menjadi tersedia melalui tautan formulir:


https://trm.contoso.com/RDWeb/webclient/index.html

Setelah login berhasil, semua aplikasi RemoteApp yang diterbitkan dalam koleksi terlihat.



Aplikasi yang dipublikasikan di browser.


Mari kita mulai 1C dengan menghubungkan Firefox dengan Kubuntu .



Kubuntu, Firefox, 1C 7.7.


Anda dapat menjalankan aplikasi yang diterbitkan lainnya. Dalam hal ini, mereka akan bekerja dalam satu jendela, dan panel atas akan menjadi sesuatu seperti taskbar.



1C, Paint dan WordPad.


Secara umum, semuanya terlihat bagus dan nyaman, desktop yang lengkap juga didukung. Pencetakan berfungsi dalam bentuk pengiriman ke printer PDF virtual dan kemudian mengunduh file dengan browser. Clipboard untuk teks juga berfungsi, meskipun kebutuhan untuk mengkonfirmasi akses browser ke clipboard sedikit mengganggu.



Konfirmasi penyalinan dari desktop jarak jauh.


Tetapi yang belum tersedia adalah transfer file dari server ke server, dan ini adalah lalat yang signifikan dalam salep. Untuk meringkas.


Pro:


  • Setup relatif sederhana.
  • Instalasi pada server Windows dapat dilakukan langsung di desktop gateway.
  • Pengoperasian RemoteApp yang transparan dan nyaman.
  • Mendukung cetak dan clipboard untuk teks.

Cons:


  • Perlu untuk berurusan dengan sertifikat.
  • Kurangnya dukungan berbagi file.

Baiklah, mari kita lihat apa yang dunia opensource tawarkan kepada kita.


Guacamole Apache


Mungkin salah satu solusi paling terkenal. Tetapi versi 1.0 muncul relatif baru-baru ini. Kerugiannya termasuk kurangnya dukungan Windows resmi sebagai titik instalasi - Anda memerlukan mesin linux yang terpisah atau gambar Docker. Dokumentasi tersedia, seperti biasa, di situs web resmi. Perlu dicatat bahwa selain RDP, solusinya mendukung akses browser ke server ssh, telnet dan vnc.


Jika Anda tidak ingin membuat versi baru dari sumber dan menangani dependensi, Anda dapat menggunakan skrip instalasi yang sudah jadi, seperti skrip guac-install . Tapi - seperti biasa - editor tidak bertanggung jawab atas skrip pihak ketiga.

Setelah instalasi, menurut dokumentasi, Anda perlu membuat pengguna dan mengkonfigurasi koneksi. Saya menggunakan pekerjaan dengan MySQL sebagai repositori pengguna dan pengaturannya dan mengatur semua ini melalui antarmuka web. Melalui itu, Anda dapat membuat dan mengonfigurasi pengguna, koneksi, dan grup yang memungkinkan Anda membuat koneksi umum untuk pengguna yang berbeda.



Menyiapkan koneksi RDP sederhana.


Perlu dicatat bahwa jika kita ingin terhubung secara transparan dengan masuk hanya melalui antarmuka web, kita perlu membuat koneksi secara manual untuk setiap pengguna dengan memasukkan kata sandi mereka (!), Atau membuat instalasi yang lebih rumit. Misalnya, gunakan Active Directory untuk menyimpan pengaturan dan mengesahkan database, yang akan memerlukan modifikasi skema AD. Atau konfigurasikan otorisasi melalui LDAP, juga membuat pengguna dalam database klasik seperti MySql .


Tanpa instalasi yang rumit, Anda harus membuat pengguna antarmuka web yang terpisah atau melakukan satu kesamaan. Dalam hal ini, jika Anda tidak menentukan nama pengguna dan kata sandi dalam pengaturan koneksi, maka Anda harus menonaktifkan keamanan NLA di server. Sangat tidak nyaman.


Selain desktop lengkap, ada juga dukungan untuk RemoteApp. Nuansa penting adalah Anda harus mendaftarkan nama program dalam pengaturan dengan cara yang sama seperti pada file RDP.



Konfigurasikan RemoteApp.


Dan jika semuanya dilakukan dengan benar, "tujuh" kami akan terbuka di browser.



Dan lagi 1C 7,7 di browser.


Pencetakan bekerja dengan cara yang sama: PDF diunduh, tetapi - tidak seperti solusi dari MS, ada kemungkinan pertukaran file dengan server.


Bahkan, Apache Guacamole meluncurkan freerdp dan dapat menelusuri folder dari mesin Linux-nya ke server Windows.



Disk yang dialihkan dalam 1C.


Pada gilirannya, Anda dapat mengunduh atau mengunduh file dari browser melalui menu khusus. Di menu ini, Anda juga dapat mengonfigurasi emulasi mouse dan keyboard di layar. Ini disebut dengan pintasan keyboard Ctrl + Alt + Shift.



Bekerja dengan file.


Clipboard teks juga berfungsi, tetapi sedikit merepotkan (itu membuat marah lebih dari solusi dari MS). Browser modern yang dipasangkan dengan Apache Guacamole memudahkan untuk menyalin teks dari aplikasi jarak jauh menggunakan Ctrl + C, tetapi untuk menempelkan teks dari mesin lokal Anda perlu menggunakan menu dengan Ctrl + Alt + Shift.


Tetapi hampir "di luar kotak" menerapkan otentikasi dua faktor (terutama jika Anda melakukan instalasi dengan skrip pihak ketiga). Misalnya, menggunakan algoritma TOTP .


Biarkan saya mengingatkan Anda secara singkat: TOTP (Algoritma Sandi Satu Kali Berbasis Waktu) adalah algoritma untuk menghasilkan kata sandi satu kali berdasarkan waktu. Pada login pertama, pengguna akan diminta untuk membaca barcode dua dimensi atau menulis satu set karakter, "mengumpankan" mereka ke aplikasi (misalnya, Google Authenticator ). Dan berdasarkan rangkaian karakter ini (string keamanan), aplikasi akan menghasilkan nomor kode baru untuk entri setiap 30 detik.

Secara umum, solusinya membuat kesan yang lebih bijaksana dan lengkap, jika tidak untuk beberapa kesulitan dalam pengaturan untuk operasi normal. Untuk meringkas.


Pro:


  • Dukungan untuk papan klip dan cetak teks.
  • Dukungan berbagi file.
  • Dukungan untuk layar sentuh dalam bentuk emulasi kustom mouse dan keyboard.
  • Kemampuan untuk merekam sesi dalam file video.

Cons:


  • Kebutuhan akan mesin atau wadah yang terpisah.
  • Sulit dikonfigurasikan, terutama untuk spesialis yang tidak terbiasa dengan Linux.
  • Pengoperasian clipboard teks yang tidak terlalu nyaman.

Di ruang terbuka jaringan, saya menemukan proyek lain yang kurang dikenal yang meluncurkan freerdp dan menampilkan hasilnya melalui browser. Mari kita coba juga.


Myrtille


Proyek dengan semua dokumentasi terletak di github penulis. Tidak seperti Guacamole, Myrtille diinstal pada Windows, dan bahkan praktis dalam mode "Next - Next - OK". Instal, luncurkan browser.



Windows di browser.


Selain RDP, SSH dan koneksi ke mesin virtual Hyper-V didukung. Menu manajemen koneksi dipanggil oleh tombol dengan tiga titik di sudut kiri atas.



Menu Manajemen Koneksi.


Bekerja dengan file dilakukan melalui antarmuka web - tombol File memungkinkan akses ke folder My Documents pengguna untuk mengunggah dan mengunduh file. Namun, jika Myrtille tidak diinstal pada server terminal, Anda harus mengkonfigurasi pengalihan folder. Mencetak, tidak seperti dua solusi lainnya, segera membuka jendela dengan dialog cetak PDF.


Hal-hal sedikit lebih buruk dengan RemoteApp ketika aplikasi berjalan dalam mode normal. Untuk menjalankan 1C yang malang, Anda harus membentuk tautan formulir:


https: // myserver / Myrtille /? __EVENTTARGET = & __ EVENTARGUMENT = & server = server & domain = domain & pengguna = pengguna & kata sandiHash = kata sandiash & program = program

Di mana Anda perlu menentukan pengguna dan kata sandi secara eksplisit (atau kata sandi hash). Program harus ditulis dengan cara yang sama seperti pada file RDP - dalam kasus 1C kita, ini akan || 1cv7l . Semua parameter harus dikodekan URL .



Dan yang ketiga kalinya 1C di browser.


Untuk mendapatkan hash kata sandi, Anda juga dapat menggunakan myrtille hanya dengan mengikuti tautan (dengan menjalankan permintaan GET):

https: //server/myrtille/GetHash.aspx? password = kata sandi

Otentikasi dua faktor juga tersedia "di luar kotak" dan didasarkan pada oliveinnovations.com .


Untuk bekerja di lingkungan domain, aplikasi memiliki mode operasi yang terpisah - mode Perusahaan. Untuk mengaktifkannya, Anda harus menentukan nama domain dan grup administrator (pengguna yang dapat mengkonfigurasi koneksi) selama instalasi (atau lambat, dalam file konfigurasi). Kemudian, ketika masuk, hanya nama pengguna dan kata sandi yang akan diminta, dan administrator dapat membuat konfigurasi koneksi yang telah ditentukan untuk grup pengguna. Ini akan memungkinkan kami untuk membuat jalan pintas yang nyaman untuk meluncurkan 1C.



Membuat koneksi di panel kontrol mode Perusahaan.


Sekarang pengguna di pintu masuk akan melihat koneksi yang tersedia untuknya dan meluncurkan tombol 1C oleh, dan bukan oleh tautan aneh dengan kata sandi.



Antarmuka saat pengguna normal masuk.


Sayangnya, saat ini saya tidak bisa membuat clipboard teks berfungsi di browser modern - pekerjaan hanya pada tombol clipboard dan hanya ke samping dari server ke PC lokal.


Total


Pro:


  • Instalasi mudah di Windows.
  • Mendukung hampir semua yang Anda butuhkan, seperti pencetakan dan transfer file.
  • Kemampuan untuk terhubung ke aplikasi atau desktop langsung melalui tautan.
  • Dimungkinkan untuk bekerja dalam mode kompatibilitas (HTML4).

Cons:


  • Sementara clipboard teks tidak berfungsi secara normal.
  • Bekerja dengan file nyaman hanya jika layanan diinstal langsung pada server terminal.

Alih-alih kata penutup


Tentu saja, ada solusi lain, termasuk yang berbayar. Berikut adalah beberapa yang paling populer tanpa menyentuh monster seperti Xen Desktop:



Mereka sudah memiliki dukungan untuk printer dan bekerja dengan file, tetapi pada prinsipnya, solusi gratis kurang lebih mencapai tingkat yang sama.


Menurut hasil penelitian, saya memutuskan untuk memikirkan solusi dari MS, karena transfer file dalam kasus saya tidak diperlukan (lebih tepatnya, itu pasti tidak diperlukan).

Source: https://habr.com/ru/post/id470525/


All Articles