Tutorial

Cara Menyiapkan dan Mengonfigurasi Server OpenVPN pada Ubuntu 20.04

Published on November 5, 2020
Bahasa Indonesia
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:

  1. sudo apt update
  2. sudo apt install openvpn easy-rsa

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

  1. mkdir ~/easy-rsa

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

  1. 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:

  1. sudo chown sammy ~/easy-rsa
  2. 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.

  1. cd ~/easy-rsa
  2. nano vars

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:

  1. ./easyrsa init-pki

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:

  1. cd ~/easy-rsa

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.

  1. ./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:

  1. 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:

  1. 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:

  1. cd ~/easy-rsa
  2. ./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:

  1. ./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:

  1. scp pki/issued/server.crt sammy@your_vpn_server_ip:/tmp
  2. 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:

  1. 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:

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

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

  1. 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:

  1. 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:

  1. 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:

  1. cd ~/easy-rsa
  2. ./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:

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

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

  1. 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:

  1. cd ~/easy-rsa
  2. ./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:

  1. ./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:

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

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

  1. 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:

  1. cp ~/easy-rsa/ta.key ~/client-configs/keys/
  2. sudo cp /etc/openvpn/server/ca.crt ~/client-configs/keys/
  3. 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:

  1. sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/server/
  2. 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:

  1. 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.

(Opsional) Menunjuk ke Kredensial Non-Asali

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:

  1. 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:

  1. sudo sysctl -p
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:

  1. ip route list default

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:

  1. 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:

  1. 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:

  1. sudo ufw allow 1194/udp
  2. sudo ufw allow OpenSSH

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

  1. sudo ufw disable
  2. 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:

  1. sudo systemctl -f enable openvpn-server@server.service

Lalu, mulai layanan OpenVPN:

  1. sudo systemctl start openvpn-server@server.service

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

  1. sudo systemctl status openvpn-server@server.service
Output
● openvpn-server@server.service - OpenVPN service for server Loaded: loaded (/lib/systemd/system/openvpn-server@.service; 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-openvpn\x2dserver.slice/openvpn-server@server.service └─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:

  1. mkdir -p ~/client-configs/files

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

  1. 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:

  1. 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:

  1. 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:

  1. 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:

  1. cd ~/client-configs
  2. ./make_config.sh client1

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

  1. 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:

  1. 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 Files\OpenVPN\config

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:

  1. sudo apt update
  2. sudo apt install openvpn

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

  1. sudo dnf install epel-release
  2. 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:

  1. cat /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.

  1. 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:

  1. nano client1.ovpn

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:

  1. ls /etc/openvpn
Output
update-resolv-conf

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

  1. nano client1.ovpn

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:

  1. 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:

  1. 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 diimpor Menghubungkan

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:

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

Selanjutnya, buka berkas konfigurasi server OpenVPN:

  1. 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:

  1. sudo systemctl restart openvpn-server@server.service

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.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

About the authors

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Featured on Community

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
Animation showing a Droplet being created in the DigitalOcean Cloud console