GNU/Linux >> Belajar Linux >  >> Debian

Cara Mengatur Server OpenVPN di Debian 10

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.


Debian
  1. Cara menginstal dan mengkonfigurasi Server OpenVPN di Debian 10

  2. Menyetel IP Statis di Debian 11 - Bagaimana cara melakukannya?

  3. Cara mengatur server SFTP di Server Debian 11

  1. Cara Mengatur Server Samba di Debian 10 Buster

  2. Cara Mengatur Server LAMP di Debian 10 Buster

  3. Cara Mengatur Server NFS di Debian 10 Buster

  1. Cara Mengatur Server LEMP di Debian 10 Buster

  2. Cara Mengatur Server OpenVPN di Ubuntu 18.04

  3. Cara Mengatur Server OpenVPN di CentOS 7