Jaringan pribadi virtual (VPN) adalah koneksi aman dan terenkripsi antara dua jaringan dan pengguna individu yang melindungi koneksi internet dan privasi online Anda. OpenVPN adalah protokol VPN sumber terbuka dan gratis yang menerapkan teknik untuk membuat titik-ke-titik yang aman dalam konfigurasi yang dirutekan. Ini lintas platform dan kompatibel dengan semua sistem operasi utama.
Dalam tutorial ini, kami akan menunjukkan cara menginstal dan menyiapkan OpenVPN di server Debian 10.
Prasyarat
- VPS Debian 10 (kami akan menggunakan paket NVMe 2 VPS kami)
- Akses ke akun pengguna root (atau akses ke akun admin dengan hak akses root)
Langkah 1:Masuk ke Server &Perbarui Paket OS Server
Pertama, masuk ke server Debian 10 Anda melalui SSH sebagai pengguna root:
ssh root@IP_Address -p Port_number
Anda harus mengganti 'IP_Address' dan 'Port_number' dengan alamat IP dan nomor port SSH masing-masing server Anda. Selain itu, ganti 'root' dengan nama pengguna akun admin jika perlu.
Sebelum memulai, Anda harus memastikan bahwa semua paket OS Debian yang terinstal di server adalah yang terbaru. Anda dapat melakukannya dengan menjalankan perintah berikut:
apt-get update -y apt-get upgrade -y
Langkah 2:Instal OpenVPN dan EasyRSA
Secara default, OpenVPN disertakan dalam repositori default Debian. Anda dapat menginstalnya dengan perintah berikut:
apt-get install openvpn -y
Setelah paket OpenVPN diinstal, Anda perlu mengunduh EasyRSA ke sistem Anda.
EasyRSA adalah utilitas baris perintah untuk membangun dan mengelola CA PKI. Ini memungkinkan Anda membuat beberapa jenis sertifikat.
Ini digunakan untuk membuat otoritas sertifikat root, dan meminta serta menandatangani sertifikat untuk OpenVPN.
Anda dapat mengunduh EasyRSA versi terbaru dari repositori Git menggunakan perintah berikut:
wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.8/EasyRSA-3.0.8.tgz
Setelah unduhan selesai, ekstrak file yang diunduh menggunakan perintah berikut:
tar -xvzf EasyRSA-3.0.8.tgz
Selanjutnya, salin direktori yang diekstrak ke direktori OpenVPN:
cp -r EasyRSA-3.0.8 /etc/openvpn/easy-rsa
Pada titik ini, OpenVPN dan EasyRSA telah terinstal di server Anda.
Langkah 3:Bangun Otoritas Sertifikat
Selanjutnya, Anda perlu membangun Otoritas Sertifikat (CA) untuk OpenVPN.
Pertama, ubah direktori ke EasyRSA dengan perintah berikut:
cd /etc/openvpn/easy-rsa
Selanjutnya, Anda perlu membuat file vars di dalamnya. File vars adalah file sederhana yang akan dijadikan sumber oleh Easy-RSA untuk konfigurasi.
Anda dapat membuatnya dengan perintah berikut:
nano vars
Tambahkan baris berikut sesuai kebutuhan Anda:
set_var EASYRSA "$PWD" set_var EASYRSA_PKI "$EASYRSA/pki" set_var EASYRSA_DN "cn_only" set_var EASYRSA_REQ_COUNTRY "USA" set_var EASYRSA_REQ_PROVINCE "Newyork" set_var EASYRSA_REQ_CITY "Newyork" set_var EASYRSA_REQ_ORG "ROSE CERTIFICATE AUTHORITY" set_var EASYRSA_REQ_EMAIL "[email protected]" set_var EASYRSA_REQ_OU "ROSE EASY CA" set_var EASYRSA_KEY_SIZE 2048 set_var EASYRSA_ALGO rsa set_var EASYRSA_CA_EXPIRE 7500 set_var EASYRSA_CERT_EXPIRE 365 set_var EASYRSA_NS_SUPPORT "no" set_var EASYRSA_NS_COMMENT "ROSE CERTIFICATE AUTHORITY" set_var EASYRSA_EXT_DIR "$EASYRSA/x509-types" set_var EASYRSA_SSL_CONF "$EASYRSA/openssl-easyrsa.cnf" set_var EASYRSA_DIGEST "sha256"
Simpan dan tutup file setelah Anda selesai.
Selanjutnya, mulai infrastruktur kunci publik dengan perintah berikut:
./easyrsa init-pki
Anda akan mendapatkan output berikut:
Note: using Easy-RSA configuration from: /etc/openvpn/easy-rsa/vars init-pki complete; you may now create a CA or requests. Your newly created PKI dir is: /etc/openvpn/easy-rsa/pki
Selanjutnya, Anda perlu menjalankan perintah build-ca untuk membuat file ca.crt dan ca.key. Anda dapat menjalankannya dengan perintah berikut:
./easyrsa build-ca nopass
Anda akan ditanya beberapa pertanyaan seperti yang ditunjukkan di bawah ini:
Note: using Easy-RSA configuration from: /etc/openvpn/easy-rsa/vars Using SSL: openssl OpenSSL 1.1.1f 31 Mar 2020 Enter New CA Key Passphrase: Re-Enter New CA Key Passphrase: Generating RSA private key, 2048 bit long modulus (2 primes) ...+++++ ......................................................................+++++ e is 65537 (0x010001) You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Common Name (eg: your user, host, or server name) [Easy-RSA CA]:vpnserver CA creation complete and you may now import and sign cert requests. Your new CA certificate file for publishing is at: /etc/openvpn/easy-rsa/pki/ca.crt
Langkah 4:Buat Sertifikat Server dan File Kunci
Selanjutnya, Anda perlu menggunakan perintah gen-req diikuti dengan nama umum untuk membuat kunci server.
./easyrsa gen-req vpnserver nopass
Anda akan melihat output berikut:
Note: using Easy-RSA configuration from: /etc/openvpn/easy-rsa/vars Using SSL: openssl OpenSSL 1.1.1f 31 Mar 2020 Generating a RSA private key .......................................................+++++ ....+++++ writing new private key to '/etc/openvpn/easy-rsa/pki/easy-rsa-1428.Angtmh/tmp.C9prw4' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Common Name (eg: your user, host, or server name) [vpnserver]: Keypair and certificate request completed. Your files are: req: /etc/openvpn/easy-rsa/pki/reqs/vpnserver.req key: /etc/openvpn/easy-rsa/pki/private/vpnserver.key
Selanjutnya, Anda harus menandatangani kunci vpnserver menggunakan sertifikat CA Anda. Anda dapat melakukannya dengan perintah berikut:
./easyrsa sign-req server vpnserver
Anda akan mendapatkan output berikut:
Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows commonName :ASN.1 12:'vpnserver' Certificate is to be certified until Feb 6 14:38:52 2022 GMT (365 days) Write out database with 1 new entries Data Base Updated Certificate created at: /etc/openvpn/easy-rsa/pki/issued/vpnserver.crt
Selanjutnya, Anda perlu membuat kunci Diffie-Hellman yang kuat untuk digunakan dalam pertukaran kunci. Anda dapat membuatnya dengan perintah berikut:
./easyrsa gen-dh
Langkah 5:Salin Semua File Sertifikat dan Kunci
Selanjutnya, Anda perlu menyalin semua file sertifikat dan kunci ke direktori /etc/openvpn/server/. Anda dapat menyalin menggunakan perintah berikut:
cp pki/ca.crt /etc/openvpn/server/ cp pki/dh.pem /etc/openvpn/server/ cp pki/private/vpnserver.key /etc/openvpn/server/ cp pki/issued/vpnserver.crt /etc/openvpn/server/
Langkah 6:Buat Sertifikat Klien dan File Kunci
Selanjutnya, Anda perlu membuat sertifikat dan file kunci untuk sistem klien.
Anda dapat membuatnya dengan perintah berikut:
./easyrsa gen-req vpnclient nopass
Anda akan mendapatkan output berikut:
Note: using Easy-RSA configuration from: /etc/openvpn/easy-rsa/vars Using SSL: openssl OpenSSL 1.1.1f 31 Mar 2020 Generating a RSA private key ....+++++ .................................+++++ writing new private key to '/etc/openvpn/easy-rsa/pki/easy-rsa-1563.TeOf5v/tmp.i4YxLz' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Common Name (eg: your user, host, or server name) [vpnclient]: Keypair and certificate request completed. Your files are: req: /etc/openvpn/easy-rsa/pki/reqs/vpnclient.req key: /etc/openvpn/easy-rsa/pki/private/vpnclient.key
Selanjutnya, tandatangani kunci klien dengan perintah berikut:
./easyrsa sign-req client vpnclient
Anda akan mendapatkan output berikut:
Signature ok The Subject's Distinguished Name is as follows commonName :ASN.1 12:'vpnclient' Certificate is to be certified until Feb 6 14:43:18 2022 GMT (365 days) Write out database with 1 new entries Data Base Updated Certificate created at: /etc/openvpn/easy-rsa/pki/issued/vpnclient.crt
Selanjutnya, salin semua sertifikat dan kunci klien ke direktori /etc/openvpn/client/.
cp pki/ca.crt /etc/openvpn/client/ cp pki/issued/vpnclient.crt /etc/openvpn/client/ cp pki/private/vpnclient.key /etc/openvpn/client/
Langkah 7:Konfigurasi Server OpenVPN
Pada titik ini, sertifikat dan kunci server dan klien sudah siap. Sekarang, Anda perlu membuat file konfigurasi OpenVPN dan menentukan semua sertifikat dan kunci.
nano /etc/openvpn/server.conf
Tambahkan baris berikut:
port 1194 proto udp dev tun ca /etc/openvpn/server/ca.crt cert /etc/openvpn/server/vpnserver.crt key /etc/openvpn/server/vpnserver.key dh /etc/openvpn/server/dh.pem server 10.8.0.0 255.255.255.0 push "redirect-gateway def1" push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220" duplicate-cn cipher AES-256-CBC tls-version-min 1.2 tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256 auth SHA512 auth-nocache keepalive 20 60 persist-key persist-tun compress lz4 daemon user nobody group nogroup log-append /var/log/openvpn.log verb 3
Simpan dan tutup file kemudian mulai layanan OpenVPN dan aktifkan untuk memulai saat reboot sistem:
systemctl start openvpn@server systemctl enable openvpn@server
Jika semuanya baik-baik saja, antarmuka baru akan dibuat. Anda dapat memeriksanya menggunakan perintah berikut:
ip a show tun0
Anda akan mendapatkan output berikut:
4: tun0: mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100 link/none inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0 valid_lft forever preferred_lft forever inet6 fe80::153d:f29:39a2:571a/64 scope link stable-privacy valid_lft forever preferred_lft forever
Langkah 8:Aktifkan Penerusan IP
Penerusan IP memungkinkan sistem operasi Anda menerima paket jaringan yang masuk dan meneruskannya ke jaringan lain. Anda dapat mengaktifkannya dengan perintah berikut:
nano /etc/sysctl.conf
Batalkan komentar atau tambahkan baris berikut:
net.ipv4.ip_forward = 1
Simpan file kemudian terapkan perubahan konfigurasi dengan perintah berikut:
sysctl -p
Langkah 9:Instal dan Konfigurasi Klien OpenVPN
Selanjutnya, Anda perlu menginstal klien OpenVPN di sistem lain dan terhubung ke server OpenVPN.
Pertama, instal OpenVPN dengan perintah berikut:
apt-get install openvpn -y
Setelah terinstal, salin semua sertifikat dan kunci Klien dari server OpenVPN ke mesin Klien. Anda dapat melakukannya dengan perintah berikut:
scp -r root@vpn-server-ip:/etc/openvpn/client .
Selanjutnya, ubah direktori menjadi klien dan buat file konfigurasi Klien:
cd client nano client.ovpn
Tambahkan baris berikut:
client dev tun proto udp remote vpn-server-ip 1194 ca ca.crt cert vpnclient.crt key vpnclient.key cipher AES-256-CBC auth SHA512 auth-nocache tls-version-min 1.2 tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256 resolv-retry infinite compress lz4 nobind persist-key persist-tun mute-replay-warnings verb 3
Simpan dan tutup file kemudian sambungkan ke server OpenVPN Anda dengan perintah berikut:
openvpn --config client.ovpn
Setelah koneksi dibuat, Anda akan mendapatkan output berikut:
Sat Feb 6 14:53:50 2021 SENT CONTROL [vpnserver]: 'PUSH_REQUEST' (status=1) Sat Feb 6 14:53:50 2021 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1,dhcp-option DNS 208.67.222.222,dhcp-option DNS 208.67.220.220,route 10.8.0.1,topology net30,ping 20,ping-restart 60,ifconfig 10.8.0.6 10.8.0.5,peer-id 0,cipher AES-256-GCM' Sat Feb 6 14:53:50 2021 OPTIONS IMPORT: timers and/or timeouts modified Sat Feb 6 14:53:50 2021 OPTIONS IMPORT: --ifconfig/up options modified Sat Feb 6 14:53:50 2021 OPTIONS IMPORT: route options modified
Anda dapat memverifikasi antarmuka OpenVPN pada mesin klien dengan perintah berikut:
ip a show tun0
Anda akan mendapatkan output berikut:
4: tun0: mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100 link/none inet 10.8.0.6 peer 10.8.0.5/32 scope global tun0 valid_lft forever preferred_lft forever inet6 fe80::9206:94d7:8fb2:6b21/64 scope link stable-privacy valid_lft forever preferred_lft forever
Tentu saja, Anda tidak perlu menginstal OpenVPN jika Anda menggunakan salah satu layanan Hosting OpenVPN Terkelola kami, dalam hal ini Anda dapat meminta admin Linux ahli kami untuk menginstal ini untuk Anda. Mereka tersedia 24×7 dan akan segera memenuhi permintaan Anda.
PS . Jika Anda menyukai posting ini tentang cara menginstal OpenVPN di Ubuntu, silakan bagikan dengan teman-teman Anda di jejaring sosial menggunakan tombol di sebelah kiri atau cukup tinggalkan balasan di bawah. Terima kasih.