One place for hosting & domains

      Mengonfigurasi

      Cara Menyiapkan dan Mengonfigurasi Server OpenVPN pada Ubuntu 20.04


      Pengantar

      Jaringan Privat Virtual (VPN) memungkinkan Anda menjelajahi jaringan tidak tepercaya seolah-olah Anda berada di suatu jaringan privat. Ini memberi Anda kebebasan untuk mengakses internet dengan aman dan selamat dari ponsel cerdas atau laptop Anda saat terhubung ke jaringan yang tidak tepercaya, seperti WiFi di hotel atau kedai kopi.

      Saat dikombinasikan dengan koneksi HTTPS, penyiapan ini memungkinkan Anda mengamankan log masuk nirkabel dan transaksi Anda. Anda dapat memintas batasan geografis dan penyensoran, serta melindungi lokasi Anda dan segala lalu lintas HTTP yang tidak terenkripsi dari jaringan yang tidak tepercaya.

      OpenVPN adalah solusi VPN Transport Layer Security (TLS) sumber terbuka lengkap yang mengakomodasi beragam konfigurasi. Dalam tutorial ini, Anda akan menyiapkan OpenVPN pada server Ubuntu 20.04, lalu mengonfigurasinya supaya dapat diakses dari mesin klien.

      Catatan: Jika Anda berencana menyiapkan Server OpenVPN pada DigitalOcean Droplet, mohon diketahui bahwa kami, seperti banyak penyedia layanan hos lain, mengenakan biaya penggunaan bandwidth yang berlebih. Karena alasan ini, harap Anda perhatikan seberapa banyak lalu lintas yang ditangani server Anda.

      Lihat laman ini untuk info lebih lanjut.

      Prasyarat

      Untuk mengikuti tutorial ini, Anda akan membutuhkan:

      Catatan: Walaupun secara teknis memungkinkan untuk menggunakan Server OpenVPN Anda atau mesin lokal Anda sebagai CA, ini tidak disarankan karena membuka VPN Anda kepada beberapa kerentanan keamanan. Sesuai dokumentasi OpenVPN resmi, Anda harus menempatkan CA Anda pada mesin mandiri yang dikhususkan untuk mengimpor dan menandatangani permintaan sertifikat. Karena alasan ini, panduan ini mengasumsikan bahwa CA Anda berada pada server Ubuntu 20.04 terpisah yang juga memiliki pengguna non-root dengan privilese sudo dan firewall dasar yang sudah diaktifkan.

      Selain itu, Anda akan membutuhkan mesin klien yang Anda akan gunakan untuk terhubung ke Server OpenVPN Anda. Dalam panduan ini, kita akan menyebutnya Klien OpenVPN. Untuk tutorial ini, sebaiknya Anda menggunakan mesin lokal Anda sebagai klien OpenVPN.

      Setelah prasyarat ini terpenuhi, Anda siap untuk mulai menyiapkan dan mengonfigurasi Server OpenVPN pada Ubuntu 20.04.

      Catatan: Harap diperhatikan bahwa jika Anda menonaktifkan autentikasi kata sandi saat mengonfigurasi server ini, Anda mungkin akan mengalami kesulitan ketika mentransfer berkas di antara beberapa server pada panduan ini. Untuk menyelesaikan masalah ini, Anda dapat mengaktifkan kembali autentikasi kata sandi pada masing-masing server. Sebagai alternatif, Anda dapat menghasilkan pasangan kunci SSH untuk masing-masing server, lalu tambahkan kunci SSH publik pada Server OpenVPN ke berkas authorized_keys milik mesin CA dan sebaliknya. Lihat Cara Menyiapkan Kunci SSH pada Ubuntu 20.04 untuk instruksi tentang cara melakukan salah satu dari solusi ini.

      Langkah 1 — Menginstal OpenVPN dan Easy-RSA

      Langkah pertama dalam tutorial ini adalah menginstal OpenVPN dan Easy-RSA. Easy-RSA adalah alat manajemen infrastruktur kunci publik (PKI) yang Anda akan gunakan pada Server OpenVPN untuk menghasilkan permintaan sertifikat yang selanjutnya Anda akan verifikasi dan tanda tangani pada Server CA.

      Untuk memulai, perbarui indeks paket Server OpenVPN Anda serta instal OpenVPN dan Easy-RSA. Kedua paket itu tersedia di repositori asali Ubuntu, sehingga Anda dapat menggunakan apt untuk instalasi:

      • sudo apt update
      • sudo apt install openvpn easy-rsa

      Selanjutnya, Anda perlu menciptakan direktori baru pada Server OpenVPN sebagai pengguna non-root yang bernama ~/easy-rsa:

      Sekarang Anda perlu membuat symlink dari skrip easyrsa yang diinstal paket ke direktori ~/easy-rsa yang baru saja Anda buat:

      • ln -s /usr/share/easy-rsa/* ~/easy-rsa/

      Catatan: Walaupun panduan lain mungkin menginstruksikan Anda untuk menyalin berkas paket easy-rsa ke direktori PKI Anda, tutorial ini mengadopsi pendekatan symlink. Hasilnya, pembaruan apa pun pada paket easy-rsa akan secara otomatis tercermin pada skrip PKI Anda.

      Terakhir, pastikan pemilik direktor adalah pengguna sudo non-root Anda dan batasi akses ke pengguna itu menggunakan chmod:

      • sudo chown sammy ~/easy-rsa
      • chmod 700 ~/easy-rsa

      Setelah program-program ini terinstal dan dipindahkan ke lokasi yang tepat pada sistem Anda, langkah selanjutnya adalah membuat Infrastruktur Kunci Publik (PKI) di server OpenVPN supaya Anda dapat meminta dan mengelola sertifikat TLS untuk klien dan server lain yang akan terhubung ke VPN Anda.

      Langkah 2 — Menciptakan PKI untuk OpenVPN

      Sebelum Anda dapat membuat kunci dan sertifikat privat dari server OpenVPN, Anda perlu membuat direktori Infrastruktur Kunci Publik lokal pada server OpenVPN Anda. Anda akan menggunakan direktori ini untuk mengelola permintaan sertifikat server dan klien alih-alih membuatnya secara langsung pada server CA Anda.

      Untuk membangun direktori PKI pada server OpenVPN, Anda perlu mengisi berkas bernama vars dengan beberapa nilai asali. Pertama-tama, Anda akan memasukkan cd ke direktori easy-rsa, lalu Anda akan menciptakan dan mengedit berkas vars menggunakan nano atau editor teks pilihan Anda.

      Setelah berkas dibuka, lekatkan dua baris berikut:

      ~/easy-rsa/vars

      set_var EASYRSA_ALGO "ec"
      set_var EASYRSA_DIGEST "sha512"
      

      Hanya dua baris inilah yang Anda butuhkan di dalam berkas vars di server OpenVPN Anda karena tidak akan digunakan sebagai Otoritas Sertifikat. Kedua baris ini akan memastikan bahwa permintaan kunci dan sertifikat privat Anda dikonfigurasi untuk menggunakan Elliptic Curve Cryptography (ECC) yang menghasilkan kunci dan tanda tangan aman untuk klien dan server OpenVPN Anda.

      Mengonfigurasi server OpenVPN dan CA Anda untuk menggunakan ECC berarti bahwa ketika klien dan server berupaya membuat kunci simetris bersama, kedua sever itu dapat menggunakan algoritma Elliptic Curve untuk melakukan pertukaran di antara keduanya. Menggunakan ECC untuk pertukaran kunci secara signifikan lebih cepat daripada menggunakan Diffie-Hellman biasa dengan algoritma RSA klasik, karena angka-angkanya jauh lebih kecil dan komputasinya lebih cepat.

      Latar Belakang: Ketika terhubung ke OpenVPN, klien menggunakan enkripsi asimetris (juga dikenal sebagai kunci publik/privat) untuk melakukan TLS handshake. Namun, ketika mengirim lalu lintas VPN terenkripsi, server dan klien menggunakan enkripsi simetris, yang juga dikenal sebagai enkripsi kunci bersama.

      Ada beban operasi komputasional yang lebih sedikit dengan enkripsi simetris dibandingkan asimetris: angka-angka yang digunakan jauh lebih kecil, dan CPU modern mengintegrasikan instruksi untuk melakukan operasi enkripsi simetris yang dioptimalkan. Untuk membuat peralihan dari enkripsi asimetris ke enkripsi simetris, server dan klien OpenVPN akan menggunakan algoritma Eliptic Curve Diffie-Hellman (ECDH) untuk menyetujui kunci rahasia bersama secepat mungkin.

      Setelah Anda mengisi berkas vars, Anda dapat melanjutkan dengan menciptakan direktori PKI. Untuk melakukan itu, jalankan skrip easyrsa dengan opsi init-pki. Meskipun Anda telah menjalankan perintah ini pada server CA sebagai bagian dari prasyarat, ini perlu dijalankan di sini karena server OpenVPN dan server CA memiliki direktori PKI terpisah:

      Perhatikan bahwa pada server OpenVPN, Anda tidak perlu menciptakan Otoritas Sertifikat. Server CA Anda hanya bertanggung jawab atas pemvalidasian dan penandatanganan sertifikat. PKI pada server VPN Anda hanya digunakan sebagai tempat yang sesuai dan tersentralisasi untuk menyimpan permintaan sertifikat dan sertifikat publik.

      Setelah Anda menginisialisasi PKI pada server OpenVPN, Anda siap untuk melanjutkan ke langkah selanjutnya, yaitu menciptakan permintaan sertifikat server OpenVPN dan kunci privat.

      Langkah 3 — Menciptakan Permintaan Sertifikat dan Kunci Privat Server OpenVPN

      Karena sekarang semua prasyarat untuk server OpenVPN sudah terinstal, langkah selanjutnya adalah membuat kunci privat dan Permintaan Penandatanganan Serfifikat (CSR) di server OpenVPN Anda. Setelah itu, Anda akan mentransfer permintaan ke CA Anda untuk ditandatangani, yang membuat sertifikat yang dibutuhkan. Setelah Anda menandatangani sertifikat, Anda akan mentransfernya kembali ke server OpenVPN dan menginstalnya untuk digunakan server itu.

      Untuk memulai, bernavigasilah ke direktori ~/easy-rsa di Server OpenVPN Anda sebagai pengguna non-root:

      Sekarang Anda akan memanggil easyrsa dengan opsi gen-req yang diikuti dengan Nama Umum (CN) untuk mesin itu. CN bisa apa pun yang Anda sukai, tetapi akan membantu jika menggunakan sesuatu yang lebih deskriptif. Dalam tutorial ini, CN dari Server OpenVPN adalah server. Pastikan untuk memasukkan opsi nopass juga. Jika itu gagal dilakukan, berkas permintaan akan dilindungi dengan kata sandi sehingga bisa menyebabkan masalah izin nantinya.

      Catatan: Jika Anda memilih nama selain dari server di sini, Anda harus menyesuaikan beberapa instruksi di bawah ini. Misalnya, saat menyalin berkas yang dihasilkan ke direktori /etc/openvpn, Anda harus mengganti dengan nama yang benar. Anda juga harus mengubah berkas /etc/openvpn/server.conf nantinya untuk menunjuk ke berkas .crt dan .key yang benar.

      • ./easyrsa gen-req server nopass

      Output

      Common Name (eg: your user, host, or server name) [server]: Keypair and certificate request completed. Your files are: req: /home/sammy/easy-rsa/pki/reqs/server.req key: /home/sammy/easy-rsa/pki/private/server.key

      Ini akan menciptakan kunci privat untuk server dan suatu berkas permintaan sertifikat yang bernama server.req. Salin kunci server ke direktori /etc/openvpn/server:

      • sudo cp /home/sammy/easy-rsa/pki/private/server.key /etc/openvpn/server/

      Setelah menyelesaikan langkah-langkah ini, Anda telah berhasil menciptakan kunci privat untuk server OpenVPN. Anda juga harus membuat Permintaan Penandatangan Sertifikat (CSR) untuk server OpenVPN. CSR sekarang siap untuk penandatanganan oleh CA Anda. Pada bagian selanjutnya dalam tutorial ini, Anda akan belajar cara menandatangani CSR dengan kunci privat server CA Anda.

      Langkah 4 — Menandatangani Permintaan Sertifikat Server OpenVPN

      Dalam langkah sebelumnya, Anda telah membuat Permintaan Penandatanganan Sertifikat (CSR) dan kunci privat untuk server OpenVPN. Sekarang, server CA harus mengetahui sertifikat server dan memvalidasinya. Setelah CA memvalidasi dan mengirimkan kembali sertifikat ke server OpenVPN, klien yang memercayai CA Anda akan dapat memercayai server OpenVPN juga.

      Pada server OpenVPN, sebagai pengguna non-root, gunakan SCP atau metode transfer lain untuk menyalin permintaan sertifikat server.req ke server CA untuk penandatanganan:

      • scp /home/sammy/easy-rsa/pki/reqs/server.req sammy@your_ca_server_ip:/tmp

      Jika Anda sudah mengikuti tutorial prasyarat Cara Menyiapkan dan Mengonfigurasi Otoritas Sertifikat (CA) pada Ubuntu 20.04 langkah selanjutnya adalah log masuk ke server CA sebagai pengguna non-root yang Anda ciptakan untuk mengelola CA Anda. Anda akan memasukkan cd ke direktori ~/easy-rsa tempat Anda membuat PK, lalu mengimpor permintaan sertifikat menggunakan skrip easyrsa:

      • cd ~/easy-rsa
      • ./easyrsa import-req /tmp/server.req server

      Output

      . . . The request has been successfully imported with a short name of: server You may now use this name to perform signing operations on this request.

      Selanjutnya, tanda tangani permintaan dengan menjalankan skrip easyrsa menggunakan opsi sign-req, diikuti oleh tipe permintaan dan Nama Umum. Tipe permintaan dapat berupa klien atau server. Karena kita bekerja dengan permintaan sertfikat server OpenVPN, pastikan Anda menggunakan tipe permintaan server:

      • ./easyrsa sign-req server server

      Pada keluaran, Anda akan diminta memverifikasi bahwa permintaan itu berasal dari sumber tepercaya. Ketik yes, lalu tekan ENTER untuk mengonfirmasi:

      Output

      You are about to sign the following certificate. Please check over the details shown below for accuracy. Note that this request has not been cryptographically verified. Please be sure it came from a trusted source or that you have verified the request checksum with the sender. Request subject, to be signed as a server certificate for 3650 days: subject= commonName = server Type the word 'yes' to continue, or any other input to abort. Confirm request details: yes . . . Certificate created at: /home/sammy/easy-rsa/pki/issued/server.crt

      Perhatikan bahwa jika Anda mengenkripsi kunci privat CA, Anda akan diminta memasukkan kata sandi Anda pada langkah ini.

      Setelah langkah-langkah itu selesai, Anda telah menandatangani permintaan sertifikat server OpenVPN menggunakan kunci privat server CA. Berkas server.crt yang dihasilkan memuat kunci enkripsi publik dari server OpenVPN dan juga tanda tangan dari server CA. Maksud tanda tangan adalah memberi tahu siapa pun yang memercayai server CA bahwa mereka juga dapat memercayai server OpenVPN saat mereka terhubung dengannya.

      Untuk menyelesaikan pengonfigurasian sertifikat, salin berkasserver.crt dan ca.crt dari server CA ke server OpenVPN:

      • scp pki/issued/server.crt sammy@your_vpn_server_ip:/tmp
      • scp pki/ca.crt sammy@your_vpn_server_ip:/tmp

      Sekarang kita kembali ke server OpenVPN Anda, salin berkas dari /tmp ke /etc/openvpn/server:

      • sudo cp /tmp/{server.crt,ca.crt} /etc/openvpn/server

      Sekarang server OpenVPN Anda hampir siap menerima koneksi. Pada langkah selanjutnya, Anda akan melakukan langkah-langkah tambahan untuk meningkatkan keamanan server.

      Langkah 5 — Mengonfigurasi Materi Kriptografis OpenVPN

      Untuk lapisan keamanan tambahan, kita akan menambah kunci rahasia bersama ekstra yang akan digunakan server dan semua klien dengan arahan tls-crypt dari OpenVPN. Opsi ini digunakan untuk mengaburkan sertifikat TLS yang digunakan saat server dan klien saling terhubung pada awalnya. Ini juga digunakan oleh server OpenVPN untuk melakukan pemeriksaan cepat pada paket masuk: jika paket ditandatangani menggunakan kunci yang dibagikan sebelumnya, maka server memprosesnya; jika tidak ditandatangani, maka server tahu kalau paket itu berasal dari sumber tidak tepercaya dan bisa mengabaikannya tanpa perlu melakukan pekerjaan dekripsi tambahan.

      Opsi ini akan membantu memastikan bahwa server OpenVPN Anda dapat mengatasi lalu lintas tidak terautentikasi, port, pemindaian porta, dan serangan Denial of Service, yang dapat membebani sumber daya server. Ini juga menyulitkan untuk mengidentifikasi lalu lintas jaringan OpenVPN.

      Untuk membuat kunci tls-crypt yang dibagikan sebelumnya, jalankan yang berikut ini pada server OpenVPN di direktori ~/easy-rsa:

      • cd ~/easy-rsa
      • openvpn --genkey --secret ta.key

      Hasilnya akan berupa berkas yang bernama ta.key. Salinlah ke direktori /etc/openvpn/server/:

      • sudo cp ta.key /etc/openvpn/server

      Dengan berkas-berkas ini berada di server OpenVPN, Anda siap membuat sertifikat klien dan berkas kunci untuk pengguna Anda, yang Anda akan gunakan untuk terhubung ke VPN.

      Langkah 6 — Membuat Sertifikat Klien dan Pasangan Kunci

      Walaupun Anda bisa membuat kunci privat dan permintaan sertifikat pada mesin klien Anda lalu mengirimnya ke CA untuk ditandatangani, panduan ini menguraikan proses untuk membuat permintaan sertifikat pada server OpenVPN. Manfaat dari pendekatan ini adalah kita bisa membuat skrip yang akan secara otomatis membuat berkas konfiguasi klien yang memuat semua kunci dan sertifikat yang dibutuhkan. Ini membuat Anda tidak perlu mentransfer kunci, sertifikat, dan berkas konfigurasi ke klien dan merampingkan proses untuk bergabung dengan VPN.

      Kita akan membuat kunci klien tunggal dan pasangan sertifikat untuk panduan ini. Jika Anda memiliki lebih dari satu klien, Anda dapat mengulangi proses ini untuk masing-masingnya. Namun, harap diperhatikan, Anda perlu memberi nilai nama yang unik ke skrip untuk setiap klien. Sepanjang tutorial ini, pasangan kunci/sertifikat pertama disebut sebagai client1.

      Mulailah dengan membuat struktur direktori di dalam direktori rumah Anda untuk menyimpan berkas sertifikat dan kunci klien:

      • mkdir -p ~/client-configs/keys

      Karena Anda akan menyimpan pasangan kunci/sertifikat dan berkas konfigurasi di dalam direktori ini, Anda harus mengunci izinnya sekarang sebagai tindakan keamanan:

      • chmod -R 700 ~/client-configs

      Selanjutnya, navigasi kembali ke direktori EasyRSA dan jalankan skrip easyrsa dengan opsi gen-req dan nopass, bersama dengan nama umum untuk klien:

      • cd ~/easy-rsa
      • ./easyrsa gen-req client1 nopass

      Tekan ENTER untuk mengonfirmasi nama umum. Lalu, salin berkas client1.key ke direktori ~/client-configs/keys/ yang sudah Anda buat sebelumnya:

      • cp pki/private/client1.key ~/client-configs/keys/

      Selanjutnya, transfer berkas client1.req ke Server CA Anda menggunakan metode aman:

      • scp pki/reqs/client1.req sammy@your_ca_server_ip:/tmp

      Sekarang log masuk ke Server CA. Lalu, bernavigasilah ke direktori EasyRSA, dan impor permintaan sertifikat:

      • cd ~/easy-rsa
      • ./easyrsa import-req /tmp/client1.req client1

      Selanjutnya, tanda tangani permintaan sama seperti yang Anda lakukan untuk server pada langkah sebelumnya. Namun kali ini, pastikan untuk menentukan tipe permintaan klien:

      • ./easyrsa sign-req client client1

      Ketika diminta, ketikkan yes untuk mengonfirmasi bahwa Anda berniat menandatangani permintaan sertifikat dan bahwa itu berasal dari sumber tepercaya:

      Output

      Type the word 'yes' to continue, or any other input to abort. Confirm request details: yes

      Sekali lagi, jika Anda mengenkripsi kunci CA, Anda akan diminta memasukkan kata sandi Anda di sini.

      Ini akan membuat berkas sertifikat klien yang bernama client1.crt. Transfer berkas ini kembali ke server:

      • scp pki/issued/client1.crt sammy@your_server_ip:/tmp

      Kembali pada server OpenVPN Anda, salin sertifikat klien ke direktori ~/client-configs/keys/:

      • cp /tmp/client1.crt ~/client-configs/keys/

      Selanjutnya, salin berkas ca.crt dan ta.key ke direktori ~/client-configs/keys/ juga, dan atur izin yang sesuai untuk pengguna sudo Anda:

      • cp ~/easy-rsa/ta.key ~/client-configs/keys/
      • sudo cp /etc/openvpn/server/ca.crt ~/client-configs/keys/
      • sudo chown sammy.sammy ~/client-configs/keys/*

      Dengan itu, sertifikat dan kunci server dan klien Anda telah dibuat dan disimpan di dalam direktori yang sesuai pada server OpenVPN Anda. Masih ada beberapa tindakan yang perlu dilakukan dengan berkas-berkas ini, tetapi itu akan dilakukan pada langkah selanjutnya. Untuk saat ini, Anda bisa melanjutkan untuk mengonfigurasi OpenVPN.

      Langkah 7 — Mengonfigurasi OpenVPN

      Seperti berbagai alat sumber terbuka lainnya yang banyak digunakan, OpenVPN memiliki banyak opsi konfigurasi yang tersedia untuk mengatur server Anda sesuai kebutuhan spesifik Anda. Pada bagian ini, kami akan memberikan instruksi tentang cara menyiapkan konfigurasi server OpenVPN yang didasarkan pada salah satu berkas konfigurasi sampel yang disertakan dalam dokumentasi perangkat lunak ini.

      Pertama-tama, salin berkas server.conf sampel sebagai titik awal untuk berkas konfigurasi Anda:

      • sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/server/
      • sudo gunzip /etc/openvpn/server/server.conf.gz

      Buka berkas baru untuk mengedit dengan editor teks pilihan Anda. Kita akan menggunakan nano dalam contoh kita:

      • sudo nano /etc/openvpn/server/server.conf

      Kita perlu mengubah beberapa baris di dalam berkas ini. Pertama-tama, temukan bagian HMAC dari konfigurasi dengan mencari arahan tls-auth. Baris ini harus dihapus tanda komentarnya. Buat baris itu menjadi komentar dengan menambahkan ; ke awal baris. Kemudian, tambah baris baru yang hanya memuat nilai tls-crypt ta.key:

      /etc/openvpn/server/server.conf

      ;tls-auth ta.key 0 # This file is secret
      tls-crypt ta.key
      

      Selanjutnya, temukan bagian pada sandi kriptografis dengan mencari baris cipher. Nilai asalinya diatur ke AES-256-CBC, akan tetapi, sandi AES-256-GCM menawarkan tingkat dan kinerja enkripsi yang lebih baik, serta didukung dengan baik pada klien OpenVPN yang terbaru. Kita akan memberikan komentar nilai asali dengan menambahkan tanda ; di awal baris ini, lalu kita akan menambahkan baris lagi setelah baris itu yang mengandung nilai AES-256-GCM yang telah diperbarui:

      /etc/openvpn/server/server.conf

      ;cipher AES-256-CBC
      cipher AES-256-GCM
      

      Tepat setelah baris ini, tambahkan arahan auth untuk memilih algoritma inti pesan HMAC. Untuk ini, SHA256 adalah pilihan yang baik:

      /etc/openvpn/server/server.conf

      auth SHA256
      

      Selanjutnya, temukan baris yang berisi arahan dh, yang mendefinisikan parameter Diffie-Hellman. Karena kita telah mengonfigurasi semua sertifikat untuk menggunakan Elliptic Curve Cryptography, tidak perlu memiliki berkas benih Diffie-Hellman. Tambahkan tanda komentar pada baris yang sudah ada yang terlihat seperti dhq2048.pem atau dh dh.pem. Nama berkas untuk kunci Diffie-Hellman mungkin berbeda dengan nama berkas yang terdaftar pada berkas konfigurasi server contoh. Lalu tambahkan baris setelahnya dengan konten dh none:

      /etc/openvpn/server/server.conf

      ;dh dh2048.pem
      dh none
      

      Selanjutnya, kita ingin OpenVPN berjalan tanpa privilese setelah dimulai, sehingga kita perlu menyuruhnya untuk berjalan dengan pengguna nobody dan grup nogroup. Untuk mengaktifkan ini, temukan dan hapus tanda komentar pada baris user nobody dan group nogroup dengan menghapus tanda ; dari awal masing-masing baris:

      /etc/openvpn/server/server.conf

      user nobody
      group nogroup
      

      (Opsional) Mendorong Perubahan DNS untuk Mengalihkan Semua Lalu Lintas Melewati VPN

      Pengaturan di atas akan menciptakan koneksi VPN antara klien dan server Anda, tetapi tidak akan memaksa koneksi apa pun untuk menggunakan terowongan itu. Jika Anda ingin menggunakan VPN untuk mengalirkan semua lalu lintas Anda melewati VPN, Anda mungkin ingin mendorong beberapa pengaturan ekstra ke komputer klien.

      Untuk memulai, temukan dan hapus tanda komentar baris yang mengandung push "redirect-gateway deff bypass dhcp. Melakukan ini akan memberi tahu klien Anda untuk mengalihkan semua lalu lintasnya melalui Server OpenVPN Anda. Harap diperhatikan bahwa mengaktifkan fungsionalitas ini dapat menyebabkan masalah konektivitas dengan layanan jaringan lainnya, seperti SSH:

      /etc/openvpn/server/server.conf

      push "redirect-gateway def1 bypass-dhcp"
      

      Tepat di bawah baris ini, temukan bagian dhcp-option. Sekali lagi, hapus ; dari awal kedua baris untuk menghapus komentar yang ada di situ:

      /etc/openvpn/server/server.conf

      push "dhcp-option DNS 208.67.222.222"
      push "dhcp-option DNS 208.67.220.220"
      

      Ini akan memberi tahu klien Anda untuk menggunakan OpenDNS resolver gratis pada alamat IP yang terdaftar. Jika Anda lebih memilih DNS resolver lain, Anda dapat menggantinya pada IP yang disoroti.

      Ini akan membantu klien dalam mengonfigurasi ulang pengaturan DNS-nya untuk menggunakan terowongan VPN sebagai gateway asali.

      (Opsional) Menyesuaikan Porta dan Protokol

      Secara asali, server OpenVPN menggunakan porta 1194 dan protokol UDP untuk menerima koneksi klien. Jika Anda perlu menggunakan porta jaringan lain dikarenakan lingkungan jaringan yang membatasi tempat klien Anda mungkin berada, Anda dapat mengubah opsi port. Jika Anda tidak melakukan hos konten web pada server OpenVPN Anda, porta 443 adalah pilihan populer karena biasanya diizinkan melalui aturan firewall.

      Untuk mengubah OpenVPN agar mendengarkan porta 443, buka berkas server.conf dan temukan baris yang terlihat seperti ini:

      /etc/openvpn/server/server.conf

      port 1194
      

      Edit sehingga porta menjadi 443:

      /etc/openvpn/server/server.conf

      # Optional!
      port 443
      

      Seringkali, protokol dibatasi untuk porta itu juga. Jika demikian, temukan baris proto di bawah baris port dan ubah protokol dari udp ke tcp:

      /etc/openvpn/server/server.conf

      # Optional!
      proto tcp
      

      Jika Anda memang mengalihkan protokol ke TCP, Anda perlu mengubah nilai arahan explicit-exit-notify dari 1 menjadi 0, karena arahan ini hanya digunakan oleh UDP. Jika Anda tidak melakukan itu saat menggunakan TCP, kesalahan akan terjadi saat Anda memulai layanan OpenVPN.

      Temukan baris explicit-exit-notify di akhir berkas dan ubah nilainya menjadi 0:

      /etc/openvpn/server/server.conf

      # Optional!
      explicit-exit-notify 0
      

      Jika Anda tidak perlu menggunakan porta dan protokol lain, sebaiknya jangan mengubah pengaturan ini.

      Jika Anda memilih nama lain selama perintah server ./easyrsa gen-req sebelumnya, ubah baris cert dan key pada berkas konfigurasi server.conf, sehingga itu menunjuk ke berkas .crt dan .key yang benar. Jika Anda menggunakan nama baku, server, ini sudah diatur dengan benar:“”

      /etc/openvpn/server/server.conf

      cert server.crt
      key server.key
      

      Setelah Anda selesai, simpan dan tutup berkas.

      Kini Anda telah selesai mengonfigurasi pengaturan umum OpenVPN Anda. Pada langkah selanjutnya, kita akan mengkustomisasi opsi jaringan server.

      Langkah 8 — Menyesuaikan Konfigurasi Jaringan Server OpenVPN

      Ada beberapa aspek dari konfigurasi jaringan server yang perlu diubah supaya OpenVPN dapat mengalirkan lalu lintas melalui VPN dengan benar. Yang pertama adalah penerusan IP, suatu metode untuk menentukan ke mana lalu lintas IP harus dialirkan. Ini esensial untuk fungsionalitas VPN yang akan diberikan oleh server Anda.

      Untuk menyesuaikan pengaturan penerusan IP asali dari server OpenVPN Anda, buka berkas /etc/sysctl.conf menggunakan nano atau editor pilihan Anda:

      • sudo nano /etc/sysctl.conf

      Lalu tambahkan baris berikut di bagian bawah berkas:

      /etc/sysctl.conf

      net.ipv4.ip_forward = 1
      

      Simpan dan tutup berkas saat Anda sudah selesai.

      Untuk membaca berkas dan memuat nilai baru untuk sesi ini, ketik:

      Output

      net.ipv4.ip_forward = 1

      Sekarang server OpenVPN Anda akan bisa meneruskan lalu lintas masuk dari satu perangkat ethernet ke perangkat lain. Pengaturan ini memastikan bahwa server dapat mengarahkan lalu lintas dari klien yang terhubung pada antarmuka VPN virtual melalui perangkat ethernet fisik lain miliknya. Konfigurasi ini akan mengalirkan semua lalu lintas web dari klien Anda melalui alamat IP server Anda, dan alamat IP publik pada klien Anda akan secara efektif disembunyikan.

      Pada langkah selanjutnya, Anda perlu mengonfigurasi beberapa aturan firewall untuk memastikan lalu lintas ke dan dari server OpenVPN Anda mengalir dengan benar.

      Langkah 9 — Konfigurasi Firewall

      Sejauh ini, Anda telah menginstal OpenVPN pada server Anda, mengonfigurasinya, serta membuat kunci dan sertifikat yang dibutuhkan supaya klien Anda dapat mengakses VPN. Namun, Anda belum memberi instruksi kepada OpenVPN tentang ke mana mengirim lalu lintas web masuk dari klien. Anda dapat menetapkan bagaimana server harus menangani lalu lintas klien dengan membuat beberapa aturan firewall dan konfigurasi aliran.

      Dengan asumsi Anda mengikuti prasyarat pada awal tutorial ini, seharusnya ufw sudah terinstal dan berjalan pada server Anda. Untuk mengizinkan OpenVPN melintasi firewall, Anda perlu mengaktifkan penyamaran, suatu konsep iptables yang menyediakan penafsiran alamat jaringan (NAT) secara langsung untuk mengalirkan koneksi klien dengan benar.

      Sebelum membuka berkas konfigurasi firewall untuk menambah aturan penyamaran, Anda harus menemukan antarmuka jaringan publik dari mesin Anda terlebih dahulu. Untuk melakukan ini, ketik:

      Antarmuka publik Anda adalah string yang ditemukan di dalam keluaran perintah ini yang mengikuti kata “dev”. Sebagai contoh, hasil ini menunjukkan antarmuka bernama eth0, yang disorot di bawah ini:

      Output

      default via 159.65.160.1 dev eth0 proto static

      Ketika Anda memiliki antarmuka yang terhubung dengan rute asali, buka berkas /etc/ufw/before.rules untuk menambahkan konfigurasi yang relevan:

      • sudo nano /etc/ufw/before.rules

      Aturan UFW biasanya ditambahkan menggunakan perintah ufw. Namun, aturan yang terdaftar di berkas before.rules dibaca dan diterapkan sebelum aturan UFW konvensional dimuat. Pada bagian atas berkas, tambahkan baris yang disorot di bawah ini. Ini akan mengatur kebijakan asali untuk rantai POSTROUTING pada tabel nat dan menyamarkan lalu lintas apa pun yang berasal dari VPN. Jangan lupa menggganti eth0 pada baris -A POSTROUTING di bawah ini dengan antarmuka yang Anda temukan pada perintah di atas:

      /etc/ufw/before.rules

      #
      # rules.before
      #
      # Rules that should be run before the ufw command line added rules. Custom
      # rules should be added to one of these chains:
      #   ufw-before-input
      #   ufw-before-output
      #   ufw-before-forward
      #
      
      # START OPENVPN RULES
      # NAT table rules
      *nat
      :POSTROUTING ACCEPT [0:0]
      # Allow traffic from OpenVPN client to eth0 (change to the interface you discovered!)
      -A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
      COMMIT
      # END OPENVPN RULES
      
      # Don't delete these required lines, otherwise there will be errors
      *filter
      . . .
      

      Simpan dan tutup berkas saat Anda sudah selesai.

      Selanjutnya, Anda perlu memberi tahu UFW untuk mengizinkan paket yang diteruskan secara asali juga. Untuk melakukan ini, buka berkas /etc/default/ufw:

      • sudo nano /etc/default/ufw

      Di dalam berkas itu, temukan arahan DEFAULT_FORWARD_POLICY dan ubah nilai dari DROP menjadi ACCEPT:

      /etc/default/ufw

      DEFAULT_FORWARD_POLICY="ACCEPT"
      

      Simpan dan tutup berkas saat Anda sudah selesai.

      Selanjutnya, sesuaikan firewall itu untuk mengizinkan lalu lintas ke OpenVPN. Jika Anda tidak mengubah porta dan protokol pada berkas /etc/openvpn/server.conf, Anda perlu membuka lalu lintas UDP ke porta 1194. Jika Anda sudah mengubah porta dan/atau protokol, ganti nilai yang Anda pilih di sini.

      Jika Anda lupa menambahkan porta SSH saat mengikuti tutorial prasyarat, tambahkan di sini juga:

      • sudo ufw allow 1194/udp
      • sudo ufw allow OpenSSH

      Setelah menambahkan aturan itu, aktifkan kembali UFW untuk memulai ulang dan memuat perubahan dari semua berkas yang sudah Anda modifikasi:

      • sudo ufw disable
      • sudo ufw enable

      Server Anda kini terkonfigurasi untuk menangani lalu lintas OpenVPN dengan benar. Dengan sudah adanya aturan firewall, kita dapat memulai layanan OpenVPN pada server.

      Langkah 10 — Memulai OpenVPN

      OpenVPN berjalan sebagai layanan systemd, sehingga kita dapat menggunakan systemctl untuk mengelolanya. Kita akan mengonfigurasi OpenVPN untuk memulai saat melakukan boot sehingga Anda dapat terhubung ke VPN kapan saja selama server Anda aktif. Untuk melakukan ini, aktifkan layanan OpenVPN dengan menambahkan itu ke systemctl:

      Lalu, mulai layanan OpenVPN:

      Periksa ulang bahwa layanan OpenVPN sudah aktif dengan perintah berikut. Anda akan melihat active (running) pada keluaran:

      Output

      [email protected] - OpenVPN service for server Loaded: loaded (/lib/systemd/system/[email protected]; enabled; vendor preset: enabled) Active: active (running) since Wed 2020-04-29 15:39:59 UTC; 6s ago Docs: man:openvpn(8) https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage https://community.openvpn.net/openvpn/wiki/HOWTO Main PID: 16872 (openvpn) Status: "Initialization Sequence Completed" Tasks: 1 (limit: 1137) Memory: 1.0M CGroup: /system.slice/system-openvpnx2dserver.slice/[email protected] └─16872 /usr/sbin/openvpn --status /run/openvpn-server/status-server.log --status-version 2 --suppress-timestamps --c> . . . . . . Apr 29 15:39:59 ubuntu-20 openvpn[16872]: Initialization Sequence Completed

      Kini kita sudah menyelesaikan konfigurasi bagian server untuk OpenVPN. Selanjutnya, Anda akan mengonfigurasi mesin klien Anda dan terhubung ke Server OpenVPN.

      Langkah 11 — Menciptakan Infrastruktur Konfigurasi Klien

      Menciptakan berkas konfigurasi untuk klien OpenVPN dapat sedikit merepotkan, karena setiap klien harus memiliki konfigurasi sendiri dan masing-masing konfigurasi harus sesuai dengan pengaturan yang sudah dijabarkan pada berkas konfigurasi server. Alih-alih menulis berkas konfigurasi tunggal yang hanya dapat digunakan pada satu klien, langkah ini menjabarkan proses untuk membangun infrastruktur konfigurasi klien yang dapat Anda gunakan untuk membuat berkas konfigurasi dengan cepat. Pertama-tama, Anda akan membuat berkas konfigurasi “base”, lalu membuat skrip yang akan mengizinkan Anda untuk membuat berkas konfigurasi klien, sertifikat, dan kunci yang unik sesuai kebutuhan.

      Mulailah dengan membuat direktori baru tempat Anda akan menyimpan berkas konfigurasi klien di dalam direktori client-configs yang Anda buat sebelumnya:

      • mkdir -p ~/client-configs/files

      Selanjutnya, salin berkas konfigurasi klien contoh ke direktori client-configs yang digunakan sebagai konfigurasi dasar Anda:

      • cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf

      Buka berkas baru ini menggunakan nano atau editor teks pilihan Anda:

      • nano ~/client-configs/base.conf

      Di dalam berkas itu, temukan arahan remote. Ini menunjukkan alamat server OpenVPN Anda — alamat IP publik dari server OpenVPN Anda. Jika Anda memutuskan untuk mengubah porta yang didengarkan oleh OpenVPN, Anda juga perlu mengubah 1194 ke porta yang Anda pilih:

      ~/client-configs/base.conf

      . . .
      # The hostname/IP and port of the server.
      # You can have multiple remote entries
      # to load balance between the servers.
      remote your_server_ip 1194
      . . .
      

      Pastikan bahwa protokol sesuai dengan nilai yang Anda gunakan pada konfigurasi server:

      ~/client-configs/base.conf

      proto udp
      

      Selanjutnya, hapus komentar pada arahan user dan group dengan menghapus tanda ; pada awal masing-masing baris:

      ~/client-configs/base.conf

      # Downgrade privileges after initialization (non-Windows only)
      user nobody
      group nogroup
      

      Temukan arahan yang mengatur ca, cert, dan key. Beri tanda komentar pada arahan ini karena Anda akan menambahkan cert dan key di dalam berkas itu sendiri nanti:

      ~/client-configs/base.conf

      # SSL/TLS parms.
      # See the server config file for more
      # description. It's best to use
      # a separate .crt/.key file pair
      # for each client. A single ca
      # file can be used for all clients.
      ;ca ca.crt
      ;cert client.crt
      ;key client.key
      

      Dengan cara yang serupa, beri tanda komentar pada arahan tls-auth, karena Anda akan menambahkan ta.key langsung ke dalam berkas konfigurasi klien (dan server disiapkan untuk menggunakan tls-crypt):

      ~/client-configs/base.conf

      # If a tls-auth key is used on the server
      # then every client must also have the key.
      ;tls-auth ta.key 1
      

      Salin pengaturan cipher dan auth yang Anda atur pada berkas /etc/openvpn/server/server/server.conf:

      ~/client-configs/base.conf

      cipher AES-256-GCM
      auth SHA256
      

      Selanjutnya, tambahkan arahan key-direction di suatu tempat di dalam berkas. Anda harus mengatur ini ke “1” supaya VPN berfungsi dengan benar pada mesin klien:

      ~/client-configs/base.conf

      key-direction 1
      

      Terakhir, tambahkan beberapa baris komentar untuk menangani berbagai metode klien VPN berbasis Linux yang akan digunakan untuk resolusi DNS. Anda akan menambahkan dua baris yang mirip, tetapi pisahkan rangkaian baris komentar. Rangkaian pertama untuk klien yang tidak menggunakan systemd-resolved untuk mengelola DNS. Klien ini bergantung pada utilitas resolvconf untuk memperbarui informasi DNS klien Linux.

      ~/client-configs/base.conf

      ; script-security 2
      ; up /etc/openvpn/update-resolv-conf
      ; down /etc/openvpn/update-resolv-conf
      

      Sekarang tambahkan rangkaian baris untuk klien yang menggunakan systemd-resolved untuk resolusi DNS:

      ~/client-configs/base.conf

      ; script-security 2
      ; up /etc/openvpn/update-systemd-resolved
      ; down /etc/openvpn/update-systemd-resolved
      ; down-pre
      ; dhcp-option DOMAIN-ROUTE .
      

      Simpan dan tutup berkas saat Anda sudah selesai.

      Nanti pada Langkah 13 - Menginstal Konfigurasi Klien dari tutorial ini, Anda akan belajar cara menentukan cara kerja resolusi DNS pada klien Linux dan bagian mana yang harus dihapus komentarnya.

      Selanjutnya, kita akan membuat skrip yang akan mengompilasi konfigurasi dasar Anda dengan berkas sertifikat, kunci, dan enkripsi yang relevan, lalu menaruh konfigurasi yang dibuat di dalam direktori ~/client-configs/files. Buka berkas baru yang bernama make_config.sh di dalam direktori ~/client-configs:

      • nano ~/client-configs/make_config.sh

      Di dalam berkas itu, tambahkan konten berikut:

      ~/client-configs/make_config.sh

      #!/bin/bash
      
      # First argument: Client identifier
      
      KEY_DIR=~/client-configs/keys
      OUTPUT_DIR=~/client-configs/files
      BASE_CONFIG=~/client-configs/base.conf
      
      cat ${BASE_CONFIG} 
          <(echo -e '<ca>') 
          ${KEY_DIR}/ca.crt 
          <(echo -e '</ca>n<cert>') 
          ${KEY_DIR}/${1}.crt 
          <(echo -e '</cert>n<key>') 
          ${KEY_DIR}/${1}.key 
          <(echo -e '</key>n<tls-crypt>') 
          ${KEY_DIR}/ta.key 
          <(echo -e '</tls-crypt>') 
          > ${OUTPUT_DIR}/${1}.ovpn
      

      Simpan dan tutup berkas saat Anda sudah selesai.

      Sebelum melanjutkan, pastikan untuk menandai berkas ini agar dapat dieksekusi dengan mengetik:

      • chmod 700 ~/client-configs/make_config.sh

      Skrip ini akan membuat salinan berkas base.conf yang sudah Anda buat, mengumpulkan semua berkas sertifikat dan kunci yang Anda buat untuk klien Anda, mengekstrak kontennya, menambahkannya ke salinan berkas konfigurasi dasar, dan mengekspor semua konten ini ke dalam berkas konfigurasi klien yang baru. Ini berarti bahwa, alih-alih mengelola berkas konfigurasi, sertifikat, dan kunci secara terpisah, semua informasi yang dibutuhkan akan disimpan di satu tempat. Manfaat menggunakan metode ini adalah bahwa jika Anda perlu menambah klien di masa depan, Anda dapat menjalankan skrip ini untuk dengan cepat membuat berkas konfigurasi baru dan memastikan bahwa semua informasi penting sudah disimpan di dalam satu lokasi yang mudah diakses.

      Harap diperhatikan bahwa setiap kali Anda menambahkan klien baru, Anda perlu membuat kunci dan sertifikat baru untuk klien itu sebelum Anda dapat menjalankan skrip ini dan membuat berkas konfigurasinya. Anda akan melakukan beberapa latihan menggunakan skrip ini pada langkah selanjutnya.

      Langkah 12 — Membuat Konfigurasi Klien

      Jika Anda mengikuti panduan ini, Anda sudah membuat sertifikat dan kunci klien yang bernama client1.crt dan client1, secara berurutan, pada Langkah 6. Anda dapat membuat berkas konfigurasi untuk kredensial ini dengan pindah ke direktori ~/client-configs dan menjalankan skrip yang sudah Anda buat pada akhir langkah sebelumnya:

      • cd ~/client-configs
      • ./make_config.sh client1

      Ini akan membuat berkas bernama client1.ovpn pada direktori ~/client-configs/files Anda:

      • ls ~/client-configs/files

      Output

      client1.ovpn

      Anda perlu mentransfer berkas ini ke perangkat yang Anda rencanakan untuk digunakan sebagai klien. Misalnya, ini bisa berupa komputer lokal atau perangkat seluler Anda.

      Walaupun aplikasi yang tepat digunakan untuk mewujudkan transfer ini tergantung pada sistem operasi perangkat Anda dan pengaturan pribadi Anda, suatu metode yang dapat diandalkan dan aman adalah menggunakan SFTP (protokol transfer berkas SSH) atau SCP (Salinan Aman) pada backend. Ini akan memindahkan berkas autentikasi VPN klien Anda melalui koneksi yang terenkripsi.

      Berikut ini adalah contoh perintah SFTP yang Anda dapat jalankan dari komputer lokal Anda (macOS atau Linux). Ini akan menyalin berkas client1.ovpn yang sudah kita buat pada langkah terakhir ke direktori home Anda:

      • sftp sammy@openvpn_server_ip:client-configs/files/client1.ovpn ~/

      Berikut ini adalah beberapa alat dan tutorial untuk mentransfer berkas dengan aman dari server OpenVPN ke komputer lokal:

      Langkah 13 — Menginstal Konfigurasi Klien

      Bagian ini mencakup cara menginstal profil VPN klien pada Windows, MacOS, Linux, iOS, dan Android. Tidak satu pun instruksi klien ini tergantung satu sama lain, jadi silakan melewati ke bagian mana pun yang berlaku untuk perangkat Anda.

      Koneksi OpenVPN akan memiliki nama yang sama seperti nama berkas ovpn Anda. Sehubungan dengan tutorial ini, ini berarti bahwa koneksi bernama client1.ovpn, selaras dengan berkas klien pertama yang Anda buat.

      Windows

      Menginstal

      Unduh aplikasi klien OpenVPN untuk Windows dari laman Unduhan OpenVPN. Pilih versi penginstal yang sesuai untuk versi Windows Anda.

      Catatan: OpenVPN perlu privilese administratif untuk menginstal.

      Setelah menginstal OpenVPN, salin berkas .ovpn ke:

      C:Program FilesOpenVPNconfig
      

      Ketika Anda meluncurkan OpenVPN, itu akan secara otomatis menemukan profil dan membuatnya tersedia.

      Anda harus menjalankan OpenVPN sebagai administrator setiap kali digunakan, bahkan dengan akun administratif. Untuk melakukan ini tanpa harus mengeklik kanan dan memilih Run as administrator setiap kali Anda menggunakan VPN, Anda harus mengatur ini lebih dahulu dari akun administratif. Ini juga berarti bahwa pengguna standar perlu memasukkan kata sandi administrator untuk menggunakan OpenVPN. Di samping itu, pengguna standar tidak dapat terhubung dengan benar ke server kecuali aplikasi OpenVPN pada klien memiliki hak admin, sehingga privilese yang ditingkatkan merupakan kebutuhan.

      Untuk mengatur aplikasi OpenVPN untuk selalu berjalan sebagai administrator, klik kanan pada ikon pintasan dan buka Properties. Pada bagian bawah tab Compatibility, klik tombol untuk Mengubah pengaturan untuk semua pengguna. Pada jendela baru, centang Run this program as an administrator.

      Menghubungkan

      Setiap kali Anda meluncurkan GUI OpenVPN, Windows akan bertanya apakah Anda ingin mengizinkan program untuk membuat perubahan pada komputer Anda. Klik Yes. Meluncurkan aplikasi klien OpenVPN hanya menempatkan applet di nampan sistem sehingga Anda dapat menghubungkan dan memutus hubungan VPN sesuai kebutuhan; itu tidak benar-benar membuat koneksi VPN.

      Setelah OpenVPN dimulai, jalankan koneksi dengan masuk ke applet nampan sistem dan klik kanan pada ikon applet OpenVPN. Ini membuka menu konteks. Pilih client1 di bagian atas menu (itu profil client1.ovpn Anda) dan pilih Connect.

      Jendela status akan terbuka yang menunjukkan keluaran log saat koneksi dibuat, dan pesan akan ditampilkan saat klien terhubung.

      Putuskan hubungan dari VPN dengan cara yang sama: Buka ke applet nampan sistem, klik kanan ikon applet OpenVPN, pilih profil klien, dan klik Disconnect.

      macOS

      Menginstal

      Tunnelblick adalah klien OpenVPN sumber terbuka yang gratis untuk macOS. Anda dapat mengunduh citra diska terbaru dari laman Unduhan Tunnelblick. Klik dua kali berkas .dmg yang sudah diunduh dan ikuti petunjuk untuk menginstal.

      Menjelang akhir proses instalasi, Tunnelblick akan menanyakan apakah Anda memiliki berkas konfigurasi. Jawab I have configuration files dan biarkan Tunnelblick menyelesaikan. Buka jendela Finder dan klik dua kali clien1.ovpn. Tunnelblick akan menginstal profil klien. Perlu privilese administratif.

      Menghubungkan

      Luncurkan Tunnelblick dengan mengeklik dua kali ikon Tunnelblick pada folder Applications. Setelah Tunnelblick diluncurkan, akan ada ikon Tunnelblick di bilah menu pada bagian kanan atas layar untuk mengendalikan koneksi. Klik ikon itu, lalu klik item menu Connect client1 untuk memulai koneksi VPN.

      Linux

      Menginstal

      Jika Anda menggunakan Linux, ada berbagai alat yang dapat Anda gunakan tergantung pada distribusi Anda. Lingkungan desktop atau manajer jendela Anda juga mungkin menyertakan utilitas koneksi.

      Namun, cara yang paling universal untuk terhubung adalah menggunakan perangkat lunak OpenVPN.

      Pada Ubuntu atau Debian, Anda dapat menginstalnya seperti yang Anda lakukan pada server dengan mengetik:

      • sudo apt update
      • sudo apt install openvpn

      Pada CentOS, Anda dapat mengaktifkan repositori EPEL, lalu menginstalnya dengan mengetik:

      • sudo dnf install epel-release
      • sudo dnf install openvpn

      Mengonfigurasi Klien yang menggunakan systemd-resolved

      Pertama-tama, tentukan apakah sistem Anda menggunakan systemd-resolved untuk menangani resolusi DNS dengan memeriksa berkas /etc/resolv.conf:

      Output

      # This file is managed by man:systemd-resolved(8). Do not edit. . . . nameserver 127.0.0.53 options edns0

      Jika sistem Anda dikonfigurasi untuk menggunakan systemd-resolved untuk resolusi DNS, alamat IP setelah opsi nameserver adalah 127.0.0.53. Juga harus ada komentar di dalam berkas seperti keluaran yang ditampilkan yang menjelaskan cara systemd-resolved mengelola berkas. Jika Anda memiliki alamat IP yang berbeda dari 127.0.0.53 maka kemungkinannya adalah sistem Anda tidak menggunakan systemd-resolved dan sebagai gantinya, Anda dapat melanjutkan ke bagian selanjutnya tentang mengonfigurasi klien Linux yang memiliki skrip update-resolv-conf.

      Untuk mendukung klien ini, instal paket openvpn-systemd-resolved terlebih dahulu. Ini menyediakan skrip yang akan memaksa systemd-resolved untuk menggunakan server VPN untuk resolusi DNS.

      • sudo apt install openvpn-systemd-resolved

      Setelah paket itu terinstal, konfigurasi klien untuk menggunakannya, dan untuk mengirim semua kueri DNS melalui antarmuka VPN. Buka berkas VPN klien:

      Sekarang hapus tanda komentar pada baris berikut yang Anda tambahkan sebelumnya:

      client1.ovpn

      script-security 2
      up /etc/openvpn/update-systemd-resolved
      down /etc/openvpn/update-systemd-resolved
      down-pre
      dhcp-option DOMAIN-ROUTE .
      

      Mengonfigurasi Klien yang menggunakan update-resolv.conf

      Jika sistem Anda tidak menggunakan systemd-resolved untuk mengelola DNS, lihat apakah distribusi Anda alih-alih menyertakan skrip /etc/openvpn/update-resolv-conf:

      Output

      update-resolv-conf

      Jika klien Anda menyertakan berkas update-resolv-conf, edit berkas konfigurasi klien OpenVPN yang Anda transfer sebelumnya:

      Hapus tanda komentar pada tiga baris yang Anda tambahkan untuk menyesuaikan pengaturan DNS:

      client1.ovpn

      script-security 2
      up /etc/openvpn/update-resolv-conf
      down /etc/openvpn/update-resolv-conf
      

      Jika Anda menggunakan CentOS, ubah arahan group dari nogroup ke nobody untuk mencocokkan grup distribusi yang tersedia:

      client1.ovpn

      group nobody
      

      Simpan dan tutup berkas.

      Menghubungkan

      Sekarang, Anda dapat terhubung ke VPN hanya dengan menunjuk perintah openvpn ke berkas konfigurasi klien:

      • sudo openvpn --config client1.ovpn

      Ini akan menghubungkan Anda ke VPN Anda.

      Catatan: Jika klien Anda menggunakan systemd-resolved untuk mengelola DNS, periksa bahwa pengaturan sudah diterapkan dengan benar dengan menjalankan perintah systemmd-resolve --status seperti ini:

      • systemd-resolve --status tun0

      Anda akan melihat keluaran seperti yang berikut:

      Output

      Link 22 (tun0) . . . DNS Servers: 208.67.222.222 208.67.220.220 DNS Domain: ~.

      Jika Anda melihat alamat IP dari server DNS yang sudah Anda konfigurasikan pada server OpenVPN, bersama dengan pengaturan ~. untuk DNS Domain pada keluaran, berarti Anda sudah mengonfigurasi klien Anda dengan benar untuk menggunakan resolver DNS dari server VPN. Anda juga dapat memeriksa bahwa Anda mengirimkan kueri DNS melalui VPN menggunakan situs seperti DNS leak test.com.

      iOS

      Menginstal

      Dari iTunes App Store, cari dan instal OpenVPN Connect, aplikasi klien OpenVPN resmi untuk iOS. Untuk mentransfer konfigurasi klien iOS Anda ke perangkat, hubungkan secara langsung ke komputer.

      Proses untuk menyelesaikan transfer dengan iTunes dijabarkan di sini. Buka iTunes pada komputer dan klik pada iPhone > apps. Gulir turun ke bagian File Sharing dan klik aplikasi OpenVPN. Jendela kosong di sebelah kanan, OpenVPN Documents, adalah untuk berbagi berkas. Seret berkas .ovpn ke jendela OpenVPN Documents. iTunes menunjukkan profil VPN yang siap untuk dimuat pada iPhone

      Sekarang, luncurkan aplikasi OpenVPN pada iPhone. Anda akan menerima notifikasi bahwa profil baru siap untuk diimpor. Ketuk tanda plus berwarna hijau untuk mengimpornya.

      Aplikasi OpenVPN iOS menunjukkan bahwa profil baru siap untuk diimporMenghubungkan

      OpenVPN kini siap digunakan dengan profil baru. Mulai koneksi dengan menggeser tombol Connect ke posisi On. Putuskan koneksi dengan menggeser tombol yang sama ke posisi Off.

      Catatan: Sakelar VPN di bawah Settings tidak dapat digunakan untuk terhubung ke VPN. Jika Anda mencobanya, Anda akan menerima pemberitahuan untuk hanya terhubung menggunakan aplikasi OpenVPN.

      Aplikasi OpenVPN iOS terhubung ke VPN

      Android

      Menginstal

      Buka Google Play Store. Cari dan instal Android OpenVPN Connect, aplikasi klien OpenVPN resmi untuk Android.

      Anda dapat mentransfer profil .ovpn dengan menghubungkan perangkat Android ke komputer Anda dengan USB dan menyalin berkas itu. Alternatifnya, jika Anda memiliki pembaca kartu SD, Anda dapat melepas kartu SD di perangkat, menyalin profil ke dalamnya, lalu memasukkan kartu itu kembali ke perangkat Android.

      Mulai aplikasi OpenVPN dan ketuk menu FILE untuk mengimpor profil.

      Pemilihan menu impor profil pada aplikasi OpenVPN Android

      Lalu navigasikan ke lokasi profil yang tersimpan (tangkapan layar menggunakan /storage/emulated/O/openvpn) dan pilih berkas .ovpn Anda. Ketuk tombol IMPORT untuk menyelesaikan pengimporan profil ini.

      Aplikasi OpenVPN Android memilih profil VPN yang akan diimpor

      Menghubungkan Setelah profil ditambahkan, Anda akan melihat layar seperti ini:

      Aplikasi OpenVPN Android dengan profil baru yang ditambahkan

      Untuk terhubung, ketuk tombol geser untuk memilih profil yang Anda ingin gunakan. Anda akan melihat statistik waktu dari koneksi dan lalu lintas Anda yang dialirkan melalui server OpenVPN Anda: Aplikasi OpenVPN Android terhubung ke VPN

      Untuk memutus koneksi, ketuk saja tombol geser pada bagian kiri atas sekali lagi. Anda akan diminta untuk mengonfirmasi bahwa Anda ingin memutus koneksi dari VPN Anda.

      Langkah 14 — Menguji Koneksi VPN Anda (Opsional)

      Catatan: Metode untuk menguji koneksi VPN Anda ini hanya akan berjalan jika Anda memilih untuk mengalirkan lalu lintas Anda melalui VPN pada Langkah 7 saat Anda mengedit berkas server.conf untuk OpenVPN.

      Setelah semuanya terinstal, periksa untuk mengonfirmasi semuanya berjalan lancar dengan benar. Tanpa mengaktifkan koneksi VPN, buka peramban dan kunjungi DNSLeakTest.

      Situs ini akan menghasilkan alamat IP yang ditetapkan oleh penyedia layanan internet Anda dan saat Anda muncul ke seluruh dunia. Untuk memeriksa pengaturan DNS Anda melalui situs web yang sama, klik pada Extended Test dan ini akan memberi tahu Anda server DNS yang Anda gunakan.

      Sekarang, hubungkan klien OpenVPN ke VPN Droplet Anda dan segarkan peramban. Alamat IP yang sangat berbeda (dibanding server VPN Anda) kini akan muncul, dan inilah cara Anda muncul ke dunia. Sekali lagi, Extended Test dari DNSLeakTest akan memeriksa pengaturan DNS Anda dan mengonfirmasi bahwa Anda kini menggunakan resolver DNS yang didorong oleh VPN Anda.

      Langkah 15 — Mencabut Sertifikat Klien

      Terkadang, Anda mungkin perlu mencabut sertifikat klien untuk mencegah akses lebih lanjut ke server OpenVPN.

      Untuk melakukan itu, ikuti contoh dalam tutorial prasyarat tentang Cara Menyiapkan dan Mengonfigurasi Otoritas Sertifikat pada Ubuntu 20.04 pada bagian Mencabut Sertifikat.

      Setelah Anda mencabut sertifikat untuk suatu klien menggunakan instruksi itu, Anda perlu menyalin berkas crl.pem yang dihasilkan ke server OpenVPN Anda di dalam direktori /etc/openvpn/server:

      • sudo cp /tmp/crl.pem /etc/openvpn/server/

      Selanjutnya, buka berkas konfigurasi server OpenVPN:

      • sudo nano /etc/openvpn/server/server.conf

      Pada bagian bawah berkas, tambahkan opsi crl-verify, yang akan menginstruksikan server OpenVPN untuk memeriksa daftar pencabutan sertifikat yang kita telah buat setiap kali ada upaya koneksi:

      /etc/openvpn/server/server.conf

      crl-verify crl.pem
      

      Simpan dan tutup berkas.

      Terakhir, mulai ulang OpenVPN untuk menerapkan pencabutan sertifikat:

      Klien seharusnya tidak lagi bisa terhubung ke server menggunakan kredensial lama.

      Untuk mencabut klien tambahan, ikuti proses ini:

      1. Cabut sertifikat dengan perintah ./easyrsa revoke client_name
      2. Buat CRL yang baru
      3. Transfer berkas crl.pem yang baru ke server OpenVPN Anda dan salin ke direktori /etc/openvpn/server/ untuk menimpa daftar lama.
      4. Mulai ulang layanan OpenVPN.

      Anda dapat menggunakan proses ini untuk mencabut sertifikat apa pun yang Anda berikan sebelumnya untuk server Anda.

      Kesimpulan

      Anda kini seharusnya memiliki jaringan privat virtual yang beroperasi penuh dan berjalan pada Server OpenVPN Anda. Anda dapat menjelajahi web dan mengunduh konten tanpa khawatir tentang aktor jahat yang melacak aktivitas Anda.

      Ada beberapa langkah yang Anda dapat lakukan untuk menyesuaikan instalasi OpenVPN Anda lebih lanjut, seperti mengonfigurasi klien Anda untuk terhubung ke VPN secara otomatis atau mengonfigurasi aturan untuk klien tertentu dan kebijakan akses. Untuk penyesuaian ini dan penyesuian OpenVPN lain, Anda harus membaca dokumentasi OpenVPN resmi.

      Untuk mengonfigurasi klien lainnya, Anda hanya perlu mengikuti langkah 6 dan 11-13 untuk masing-masing perangkat tambahan. Untuk mencabut akses ke klien, ikuti langkah 15.



      Source link

      Cara Menginstal dan Mengonfigurasi VNC pada Ubuntu 20.04


      Pengantar

      Virtual Network Computing, atau VNC, adalah sistem koneksi yang memungkinkan Anda untuk menggunakan kibor dan tetikus untuk berinteraksi dengan lingkungan desktop grafis pada server jauh. VNC memudahkan pengelolaan berkas, perangkat lunak, dan pengaturan pada server jauh bagi pengguna yang belum terbiasa dengan baris perintah.

      Dalam panduan ini, Anda akan menyiapkan server VNC dengan TightVNC pada server Ubuntu 20.04 dan menghubungkannya dengan aman melalui terowongan SSH. Kemudian, Anda akan menggunakan program klien VNC pada mesin lokal Anda untuk berinteraksi dengan server Anda melalui lingkungan desktop grafis.

      Prasyarat

      Untuk menyelesaikan tutorial ini, Anda membutuhkan:

      • Satu server Ubuntu 20.04 dengan pengguna administratif non-root dan sebuah firewall yang dikonfigurasi dengan UFW. Untuk menyiapkan ini, ikuti panduan penyiapan server awal untuk Ubuntu 20.04 dari kami.
      • Komputer lokal yang sudah terinstal dengan klien VNC. Klien VNC yang Anda gunakan harus mendukung koneksi melalui terowongan SSH:
        • Pada Windows, Anda dapat menggunakan TightVNC, RealVNC, atau UltraVNC.
        • Pada macOS, Anda dapat menggunakan program Screen Sharing bawaan, atau aplikasi lintas platform seperti RealVNC.
        • Pada Linux, Anda dapat memilih dari berbagai pilihan, termasuk vinagre, krdc, RealVNC, atau TightVNC.

      Langkah 1 — Menginstal Lingkungan Desktop dan Server VNC

      Secara asali, server Ubuntu 20.04 tidak dilengkapi dengan lingkungan desktop grafis atau server VNC yang sudah terinstal, sehingga Anda akan mulai dengan menginstalnya.

      Anda memiliki banyak pilihan terkait server VNC dan lingkungan desktop yang dapat Anda pilih. Dalam tutorial ini, Anda akan menginstal paket untuk lingkungan desktop Xfce terbaru dan paket TightVNC yang tersedia dari repositori Ubuntu resmi. Baik Xfce dan TightVNC dikenal ringan dan cepat, yang akan membantu memastikan bahwa koneksi VNC akan berjalan lancar dan stabil bahkan saat koneksi internet lambat.

      Setelah menghubungkan ke server Anda dengan SSH, perbarui daftar paket Anda:

      Sekarang, instal Xfce beserta dengan paket xfce4-goodies, yang berisi beberapa peningkatan untuk lingkungan desktop:

      • sudo apt install xfce4 xfce4-goodies

      Selama instalasi, Anda mungkin diminta untuk memilih manajer tampilan asali untuk Xfce. Manajer tampilan adalah program yang memungkinkan Anda untuk memilih dan log masuk ke lingkungan desktop melalui antarmuka grafis. Anda hanya akan menggunakan Xfce ketika Anda terhubung dengan klien VNC, dan dalam sesi Xfce ini, Anda sudah log masuk sebagai pengguna Ubuntu non-root. Jadi, terkait tujuan tutorial ini, pilihan manajer tampilan Anda tidak akan berpengaruh. Pilih salah satu dan tekan ENTER.

      Setelah instalasi selesai, instal server TightVNC:

      • sudo apt install tightvncserver

      Selanjutnya, jalankan perintah vncserver untuk mengatur kata sandi akses VNC, menciptakan berkas konfigurasi awal, dan memulai instans server VNC:

      Anda akan diminta untuk memasukkan dan melakukan verifikasi kata sandi untuk mengakses mesin Anda dari jarak jauh:

      Output

      You will require a password to access your desktops. Password: Verify:

      Kata sandi harus terdiri dari antara enam dan delapan karakter. Kata sandi yang terdiri dari lebih dari 8 karakter akan otomatis terpotong.

      Setelah Anda melakukan verifikasi kata sandi, Anda akan memiliki opsi untuk menciptakan kata sandi hanya-lihat. Pengguna yang log masuk dengan kata sandi hanya-lihat tidak akan bisa mengendalikan instans VNC dengan tetikus atau kibor mereka. Ini adalah opsi yang berguna jika Anda ingin menunjukkan sesuatu kepada orang lain yang menggunakan server VNC Anda, tetapi hal ini tidak diwajibkan.

      Proses ini kemudian menciptakan berkas konfigurasi asali dan informasi koneksi yang diperlukan untuk server. Selain itu, proses ini meluncurkan instans server asali pada porta 5901. Porta ini disebut porta tampilan, dan oleh VNC dirujuk sebagai :1. VNC dapat meluncurkan beberapa instans pada porta tampilan lain, dengan :2 yang merujuk ke porta 5902, :3 yang merujuk ke 5903, dan seterusnya:

      Output

      Would you like to enter a view-only password (y/n)? n xauth: file /home/sammy/.Xauthority does not exist New 'X' desktop is your_hostname:1 Creating default startup script /home/sammy/.vnc/xstartup Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/your_hostname:1.log

      Perhatikan bahwa jika Anda ingin mengubah kata sandi Anda atau menambahkan kata sandi hanya-lihat, Anda dapat melakukannya dengan perintah vncpasswd:

      Di titik ini, server VNC sudah terinstal dan berjalan. Sekarang, mari kita mengonfigurasinya untuk menjalankan Xfce dan memberikan kita akses ke server melalui antarmuka grafis.

      Langkah 2 — Mengonfigurasi Server VNC

      Server VNC perlu mengetahui perintah mana yang harus dilaksanakan saat server memulai. Khususnya, VNC perlu mengetahui ke lingkungan desktop grafis mana server ini harus terhubung.

      Perintah yang dijalankan server VNC saat memulai terletak di dalam berkas konfigurasi yang disebut xstartup di dalam folder .vnc di bawah direktori rumah. Skrip pemulaian diciptakan saat Anda menjalankan perintah vncserver dalam langkah sebelumnya, tetapi Anda akan menciptakan skrip Anda sendiri untuk meluncurkan desktop Xfce.

      Karena Anda akan mengubah bagaimana server VNC dikonfigurasi, pertama-tama hentikan instans server VNC yang berjalan pada porta 5901 dengan perintah berikut:

      Keluarannya akan terlihat seperti ini, meskipun Anda akan melihat PID yang berbeda:

      Output

      Killing Xtightvnc process ID 17648

      Sebelum Anda memodifikasi berkas xstartup, buat cadangan berkas aslinya:

      • mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

      Sekarang, ciptakan berkas xstartup yang baru dan buka berkas itu dalam editor teks, seperti nano:

      Kemudian, tambahkan baris berikut pada berkas tersebut:

      ~/.vnc/xstartup

      #!/bin/bash
      xrdb $HOME/.Xresources
      startxfce4 &
      

      Baris pertama adalah shebang. Dalam berkas teks biasa yang dapat dijalankan pada platform *nix, shebang memberi tahu sistem ke penafsir mana berkas tersebut harus diberikan untuk dijalankan. Dalam kasus ini, Anda memberikan berkas itu ke penafsir Bash. Ini akan memungkinkan setiap baris suksesi dapat dilaksanakan sebagai perintah, secara berurutan.

      Perintah pertama dalam berkas, xrdb $HOME/.Xresources, menyuruh kerangka kerja GUI VNC untuk membaca berkas .Xresources milik pengguna server . Xresources adalah tempat di mana pengguna dapat melakukan perubahan terhadap pengaturan tertentu pada desktop grafis, seperti warna terminal, tema kursor, dan perenderan font. Perintah kedua menyuruh server untuk menjalankan Xfce. Setiap kali Anda memulai atau memulai ulang server VNC, perintah ini akan dilaksanakan secara otomatis.

      Simpan dan tutup berkas setelah menambahkan baris-baris ini. Jika Anda menggunakan nano, lakukan dengan menekan CTRL + X, Y, kemudian ENTER.

      Untuk memastikan server VNC dapat menggunakan berkas pemulaian awal yang baru ini dengan benar, Anda perlu membuatnya bisa dijalankan:

      Kemudian, hidupkan ulang server VNC:

      Perhatikan bahwa kali ini, perintah meliputi opsi -localhost, yang mengikat server VNC ke antarmuka loopback server Anda. Ini akan menyebabkan VNC hanya mengizinkan koneksi yang berasal dari server di mana VNC terinstal.

      Di langkah selanjutnya, Anda akan membangun terowongan SSH antara mesin lokal Anda dan server Anda, yang pada dasarnya memperdaya VNC agar berpikir bahwa koneksi dari mesin lokal Anda berasal dari server Anda. Strategi ini akan menambahkan lapisan keamanan tambahan di sekitar VNC, karena satu-satunya pengguna yang dapat mengaksesnya adalah pengguna yang telah memiliki akses SSH ke server Anda.

      Anda akan melihat keluaran yang serupa dengan ini:

      Output

      New 'X' desktop is your_hostname:1 Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/your_hostname:1.log

      Dengan konfigurasi yang ada, Anda siap terhubung ke server VNC dari mesin lokal Anda.

      Langkah 3 — Terhubung ke Desktop VNC dengan Aman

      VNC sendiri tidak menggunakan protokol yang aman saat membuat koneksi. Untuk terhubung dengan aman ke server, Anda akan membangun terowongan SSH dan kemudian menyuruh klien VNC Anda untuk terhubung dengan menggunakan terowongan itu alih-alih membuat koneksi langsung.

      Buat koneksi SSH pada komputer lokal Anda yang secara aman meneruskan ke koneksi localhost untuk VNC. Anda dapat melakukan ini melalui terminal pada Linux atau macOS dengan perintah ssh berikut:

      • ssh -L 59000:localhost:5901 -C -N -l sammy your_server_ip

      Berikut ini makna opsi perintah ssh ini:

      • -L 59000:localhost:5901: Switch -L menetapkan bahwa porta yang ditentukan pada komputer lokal (59000) adalah untuk diteruskan ke hos yang ditentukan dan porta pada server tujuan (localhost:5901, yang berarti porta 5901 pada server tujuan, yang didefinisikan sebagai your_server_ip). Perhatikan bahwa porta lokal yang Anda tentukan bersifat arbitrer, yang berarti sejauh porta itu belum terikat ke layanan lain, Anda dapat menggunakannya sebagai porta penerus untuk terowongan Anda.
      • -C: Bendera ini mengaktifkan kompresi yang dapat membantu meminimalkan konsumsi sumber daya dan mempercepat semuanya.
      • -N: Opsi ini memberi tahu ssh bahwa Anda tidak ingin melaksanakan perintah jarak jauh apa pun. Pengaturan ini berguna saat Anda hanya ingin meneruskan porta.
      • -l sammy your_server_ip: Switch -l memungkinkan Anda untuk menentukan pengguna yang Anda inginkan untuk log masuk setelah Anda terhubung ke server. Pastikan untuk mengganti sammy dan your_server_ip dengan nama pengguna non-root dan alamat IP server Anda.

      Catatan: Perintah ini membangun terowongan SSH yang meneruskan informasi dari porta 5901 pada server VNC Anda ke porta 59000 pada mesin lokal Anda melalui porta 22 pada masing-masing mesin, porta asali untuk SSH. Dengan asumsi Anda telah mengikuti prasyarat panduan Penyiapan Server Awal untuk Ubuntu 20.04, Anda telah menambahkan aturan UFW untuk mengizinkan koneksi ke server Anda melalui OpenSSH.

      Ini lebih aman daripada hanya membuka firewall server Anda untuk mengizinkan koneksi ke porta 5901, karena itu akan mengizinkan siapa pun mengakses server Anda melalui VNC. Dengan terhubung melalui terowongan SSH, Anda membatasi akses VNC ke mesin-mesin yang sudah memiliki akses SSH ke server.

      Jika Anda menggunakan PuTTY untuk terhubung ke server Anda, Anda dapat menciptakan terowongan SSH dengan mengeklik kanan pada bilah atas jendela terminal, dan kemudian mengeklik opsi** Change Settings…**:

      Klik kanan pada bilah atas untuk membuka opsi Change Settings

      Temukan cabang Connection dalam menu pohon di sebelah kiri jendela PuTTY Reconfiguration. Perluas cabang SSH dan klik Tunnels. Pada layar Options controlling SSH port forwarding, masukkan 59000 sebagai Source Port dan localhost:5901 sebagai Destination, seperti ini:

      Contoh konfigurasi terowongan SSH PuTTY

      Kemudian, klik tombol Add, lalu tombol Apply untuk menerapkan terowongan.

      Setelah terowongan berjalan, gunakan klien VNC untuk terhubung ke localhost:59000. Anda akan diminta untuk mengautentikasi dengan menggunakan kata sandi yang Anda atur pada Langkah 1.

      Setelah terhubung, Anda akan melihat desktop Xfce asali. Itu akan terlihat seperti ini:

      Koneksi VNC ke server Ubuntu 20.04 dengan lingkungan desktop Xfce

      Anda dapat mengakses berkas-berkas di direktori rumah Anda dengan manajer berkas atau dari baris perintah, seperti yang terlihat di sini:

      Manajer Berkas melalui koneksi VNC ke Ubuntu 20.04

      Tekan CTRL+C pada terminal lokal Anda untuk menghentikan terowongan SSH dan kembali ke prompt Anda. Ini akan memutus sesi VNC Anda juga.

      Sekarang, Anda dapat mengonfigurasi server VNC untuk berjalan sebagai layanan systemd.

      Langkah 4 — Menjalankan VNC sebagai Layanan Sistem

      Dengan menyiapkan server VNC untuk berjalan sebagai layanan systemd, Anda dapat memulai, menghentikan, dan memulai ulang jika membutuhkannya, seperti layanan lainnya. Anda juga dapat menggunakan perintah manajemen systemd untuk memastikan bahwa VNC memulai saat server Anda melakukan boot.

      Pertama-tama, ciptakan berkas unit baru yang disebut /etc/systemd/system/[email protected]:

      Simbol @ pada akhir nama akan mengizinkan kita memasukkan argumen yang Anda dapat gunakan dalam konfigurasi layanan. Anda akan menggunakan ini untuk menentukan porta tampilan VNC yang Anda ingin gunakan saat Anda mengelola layanan.

      Tambahkan baris-baris berikut pada berkas. Pastikan untuk mengubah nilai User, Group, WorkingDirectory, dan nama pengguna dalam nilai PIDFILE yang sesuai dengan nama pengguna Anda:

      /etc/systemd/system/[email protected]

      [Unit]
      Description=Start TightVNC server at startup
      After=syslog.target network.target
      
      [Service]
      Type=forking
      User=sammy
      Group=sammy
      WorkingDirectory=/home/sammy
      
      PIDFile=/home/sammy/.vnc/%H:%i.pid
      ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
      ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :%i
      ExecStop=/usr/bin/vncserver -kill :%i
      
      [Install]
      WantedBy=multi-user.target
      

      Perintah ExecStartPre menghentikan VNC jika VNC sudah berjalan. Perintah ExecStart memulai VNC dan mengatur kedalaman warna ke warna 24-bita dengan resolusi 1280×800. Anda dapat memodifikasi opsi pemulaian ini sesuai kebutuhan Anda. Juga, perhatikan bahwa perintah ExecStart meliputi opsi -localhost lagi.

      Simpan dan tutup berkas.

      Selanjutnya, buat sistem menyadari kehadiran berkas unit yang baru:

      • sudo systemctl daemon-reload

      Aktifkan berkas unit:

      Angka 1 yang mengikuti tanda @ menandakan di nomor tampilan mana layanan akan muncul, yang dalam kasus ini adalah di nomor asali :1 seperti yang dibahas dalam Langkah 2.

      Hentikan instans server VNC saat ini jika masih berjalan:

      Kemudian, jalankan sebagaimana Anda ingin memulai layanan systemd lainnya:

      • sudo systemctl start vncserver@1

      Anda dapat memverifikasi bahwa VNC telah memulai dengan perintah ini:

      • sudo systemctl status vncserver@1

      Jika VNC memulai dengan benar, keluarannya akan terlihat seperti ini:

      Output

      [email protected] - Start TightVNC server at startup Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-05-07 17:23:50 UTC; 6s ago Process: 39768 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=2) Process: 39772 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :1 (code=exited, status=0/SUCCESS) Main PID: 39795 (Xtightvnc) ...

      Server VNC Anda sekarang siap digunakan kapan pun server Anda melakukan boot, dan Anda dapat mengelolanya dengan perintah systemctl seperti layanan systemd lainnya.

      Namun, tidak akan ada perbedaan di sisi klien. Untuk menghubungkan ulang, mulai terowongan SSH Anda kembali.

      • ssh -L 59000:localhost:5901 -C -N -l sammy your_server_ip

      Lalu buat koneksi baru menggunakan perangkat lunak klien VNC ke localhost:59000 untuk terhubung ke server Anda.

      Kesimpulan

      Anda sekarang memiliki server VNC yang aman dan berfungsi pada server Ubuntu 20.04. Kini Anda dapat mengelola berkas, perangkat lunak, dan pengaturan Anda dengan antarmuka grafis yang ramah pengguna, dan Anda akan dapat menjalankan perangkat lunak grafis seperti peramban web dari jarak jauh.



      Source link