GNU/Linux >> Belajar Linux >  >> Linux

Cara mengatur dan mengkonfigurasi VPN dengan OpenVPN di Ubuntu 18.04

VPN adalah Jaringan Pribadi Virtual yang memungkinkan Anda mengakses Internet atau layanan tertentu bahkan dari jaringan yang tidak tepercaya. Pada dasarnya, seolah-olah Anda terhubung secara fisik ke jaringan pribadi:misalnya, Anda dapat mengakses rekening bank Anda atau melakukan pembayaran tanpa takut ada yang mencegat lalu lintas yang dihasilkan oleh perangkat Anda.

OpenVPN adalah VPN berdasarkan protokol TLS (Transport Layer Security) dan SSL (Secure Sockets Layer). OpenVPN menggunakan beberapa sertifikat untuk mengenkripsi lalu lintas antara server dan klien.

Dalam tutorial ini Anda akan melihat cara mengkonfigurasi OpenVPN di server dengan Ubuntu 18.04.

Untuk mengimplementasikan tutorial ini, mesin server dan mesin lain yang bertindak sebagai CA (Otoritas Sertifikasi), yang akan menilai validitas sertifikat, diperlukan.

Anda harus terhubung ke server dan CA Anda melalui koneksi SSH. Jika Anda belum melakukannya, ikuti panduan kami disarankan untuk terhubung secara aman dengan protokol SSH.

Menginstal OpenVPN

Akses server Anda.

OpenVPN sudah tersedia di repositori Ubuntu resmi Ubuntu , oleh karena itu, tidak perlu menambahkan apa pun.

Ketik:

sudo apt update
sudo apt install openvpn

Pada titik ini, OpenVPN telah berhasil diinstal di server Anda.

Menginstal EasyRSA

Lanjutkan dengan mengunduh EasyRSA di Server dan CA Anda dengan mengetik di kedua mesin:

wget -P ~/ https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.4/EasyRSA-3.0.4.tgz

Versi terbaru dapat diunduh dari https://github.com/OpenVPN/easy-rsa/releases

$ cd ~
$ sudo tar xvf EasyRSA-3.0.4.tgz

Nama mungkin berbeda tergantung pada versi yang diunduh

Konfigurasi server

Selesaikan konfigurasi server dengan mengetik:

$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
$ sudo gzip -d /etc/openvpn/server.conf.gz
$ sudo nano /etc/openvpn/server.conf
  • Temukan bagian yang merujuk ke HMAC ("tls-auth"). Jika baris dikomentari, hapus ";".

  • Temukan bagian tentang enkripsi ("cipher"). Jika dikomentari, hapus tanda ";". Tambahkan baris baru yang berisi teks "auth SHA256" tepat di bawah .

  • Temukan bagian "dh" yang mendefinisikan parameter Diffie-Hellman dan hapus "2048" dari namanya ( "dh dh.pem" seharusnya diperoleh).

  • Temukan bagian "pengguna" dan "grup" dan hapus ";" untuk menghapus komentar pada baris.

Mengonfigurasi EasyRSA di CA

Setelah menginstal EasyRSA, file konfigurasi untuk menentukan variabel untuk CA Anda telah dibuat di CA Anda. Ketik:

$ cd ~/EasyRSA-3.0.4/
$ cp vars.example vars
$ nano vars

Hapus "#" ke petunjuk yang ditunjukkan pada gambar di bawah ini:

Mulai skrip "easyrsa" untuk menginisialisasi Infrastruktur Kunci Publik (PKI):

$ sudo ./easyrsa init-pki
$ sudo ./easyrsa build-ca nopass

dengan perintah ini dua file akan dibuat:

  • ca.crt:sertifikat CA publik yang digunakan oleh server dan klien untuk saling memberi tahu bahwa mereka adalah bagian dari jaringan tepercaya yang sama.

  • ca.key:kunci pribadi yang digunakan mesin CA untuk menandatangani kunci dan sertifikat untuk server dan klien. File ini harus disimpan hanya di mesin CA (yang tidak dapat diakses oleh pihak ketiga) jika tidak, keamanan jaringan dapat dikompromikan.

Anda akan diminta untuk memasukkan nama. Biarkan kosong dan tekan Enter.

Meminta sertifikat server dari CA

Sekarang setelah Mesin CA dikonfigurasi, minta server membuat kunci pribadi dan permintaan sertifikat dan mengirimkannya ke Mesin CA untuk ditandatangani:

$ cd ~/EasyRSA-3.0.4
$ ./easyrsa init-pki
$ ./easyrsa gen-req server nopass

Untuk mempermudah, biarkan "server" sebagai nama mesin, untuk menghindari beberapa perubahan di kemudian hari.

Anda baru saja membuat kunci pribadi untuk server dan permintaan sertifikat yang disebut "server.req":

$ sudo cp ~/EasyRSA-v3.0.6/pki/private/server.key /etc/openvpn/

Salin file server.req ke mesin CA:

$ sudo scp ~/EasyRSA-3.0.4/pki/reqs/server.req [email protected]_CA_ip:/tmp

Membuat dan menandatangani sertifikat

Pada CA Anda di folder EasyRSA, impor file yang baru saja Anda salin dan tanda tangani:

$ cd ~/EasyRSA-3.0.4/
$ sudo ./easyrsa import-req /tmp/server.req server
$ sudo ./easyrsa sign-req server server

Ketik “yes” dan tekan Enter.

Transfer sertifikat yang ditandatangani dan ca.crt ke Server VPN:

$ sudo scp pki/issued/server.crt [email protected]_server_ip:/tmp
$ sudo scp pki/ca.crt [email protected]_server_ip:/tmp

Kemudian di Server Anda

salin file yang diterima di direktori yang sesuai:

$ sudo cp /tmp/{server.crt,ca.crt} /etc/openvpn/
$ cd ~/EasyRSA-3.0.4/

Buat kunci pertukaran yang kuat berdasarkan Diffie-Hellman.

$ sudo ./easyrsa gen-dh
$ sudo openvpn --genkey --secret ta.key

Salin file yang dihasilkan ke folder "/ etc / openvpn /"

$ sudo cp ~/EasyRSA-3.0.4/ta.key /etc/openvpn/
$ sudo cp ~/EasyRSA-3.0.4/pki/dh.pem /etc/openvpn/

Konfigurasi klien

Buat folder untuk menyimpan sertifikat dan kunci klien (karena panduan ini hanya menyajikan satu klien, ini disebut 'klien1', tetapi operasi harus diulang untuk setiap klien, menggunakan denominasi)

$ sudo mkdir -p ~/client-configs/keys
$ sudo chmod -R 700 ~/client-configs
$ cd ~/EasyRSA-3.0.4/
$ sudo ./easyrsa gen-req client1 nopass

Tekan Enter untuk menerima nama standar yang diusulkan.

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

Salin kunci klien ke folder yang dibuat sebelumnya.

$ sudo scp pki/reqs/client1.req [email protected]_CA_IP:/tmp

Kirim file client1.req ke Mesin CA.

Impor permintaan sertifikat di CA Anda:

$ cd ~/EasyRSA-3.0.4/
$ sudo ./easyrsa import-req /tmp/client1.req client1
$ sudo ./easyrsa sign-req client client1

Ketik "ya" untuk mengotorisasi tanda tangan.

Unggah client1.crt di server Anda:

scp pki/issued/client1.crt [email protected]_SERVER:/tmp

Di Server Anda, salin file berikut ke folder yang sesuai.

$ sudo mkdir -p ~/client-configs/keys

$ sudo chmod -R 700 ~/client-configs

$ sudo cp /tmp/client1.crt ~/client-configs/keys/

$ sudo cp ~/EasyRSA-3.0.4/ta.key ~/client-configs/keys/

$ sudo cp /etc/openvpn/ca.crt ~/client-configs/keys/

Sekarang sertifikat dan kunci server dan klien telah dibuat.

Mengonfigurasi perutean IP dan firewall

Ubah aturan penerusan IP:

$ sudo nano /etc/sysctl.conf

Cari bagian "net.ipv4.ip_forward" dan hapus "#" untuk membuat instruksi "not commented".

Ubah beberapa aturan firewall untuk merutekan koneksi klien dengan benar.

$ ip route | grep default

Simpan nama setelah "dev" ( bernama "eth0" pada gambar di bawah):

$ sudo nano /etc/ufw/before.rules

Tambahkan perintah seperti pada gambar di bawah, ganti "eth0" dengan nama antarmuka jaringan Anda.

# START OPENVPN RULES

# NAT table rules

*nat

:POSTROUTING ACCEPT [0:0] 

# Allow traffic from OpenVPN client to eth0 

-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE

COMMIT

# END OPENVPN RULES

Simpan dan keluar. Sekarang edit file konfigurasi UFW:

$ sudo nano /etc/default/ufw

Ubah nilai parameter "DEFAULT_FORWARD_POLICY" dengan "ACCEPT".

$ sudo ufw allow 1194/udp

Tambahkan port 1194 untuk lalu lintas UDP.

$ sudo ufw allow OpenSSH

Mulai ulang UFW:

$ sudo ufw disable

$ sudo ufw enable

Mulai layanan OpenVPN:

$ sudo systemctl start openvpn

Periksa status layanan:

$ sudo systemctl status openvpn

Setel layanan saat server mulai.

$ sudo systemctl enable openvpn

Buat file konfigurasi untuk klien:

$ sudo mkdir -p ~/client-configs/files
$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf
$ sudo nano ~/client-configs/base.conf

Temukan bagian "jarak jauh" dan pastikan tertulis "IP_Server jarak jauh 1194"

  • IP_Server:tulis IP Server

  • 1194:port yang dipilih sebelumnya.

Temukan bagian "proto" untuk memastikan server disetel ke UDP (Anda akan menemukan baris TCP dikomentari dengan tanda ";").

Temukan bagian "pengguna" dan "grup" dan hapus ";" untuk membuat mereka "tidak ada komentar".

Temukan bagian "ca.crt" - "client.crt" - "client.key" - "ta.key" dan beri komentar dengan "#" di awal dari setiap baris.

Temukan bagian "cipher" dan tambahkan pernyataan "auth SHA256" di bawah pernyataan "cipher AES-256-CBC".

Tambahkan instruksi "key-direction 1" kapan saja.

Tambahkan baris komentar ini kapan saja. Jika klien adalah mesin Linux, buat mereka "tidak ada komentar".

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

Simpan dan keluar.

Membuat konfigurasi untuk klien

Di Server Anda, buat skrip untuk mengompilasi konfigurasi klien secara otomatis.

nano ~/client-configs/make_config.sh

Salin dan tempel teks:

#!/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-auth>') \

    ${KEY_DIR}/ta.key \

    <(echo -e '</tls-auth>') \

    > ${OUTPUT_DIR}/${1}.ovpn

Simpan dan keluar.

chmod 700 ~/client-configs/make_config.sh

Coba sekarang untuk membuat "konfigurasi" klien klien.

$ cd ~/client-configs
$ sudo ./make_config.sh client1

File bernama “client1.ovpn” akan dibuat.

Sekarang transfer file ini ke perangkat yang ingin Anda gunakan. Ini akan digunakan oleh perangkat lunak VPN untuk koneksi.

Mencabut sertifikat Klien

$ cd EasyRSA-3.0.4/
$ sudo ./easyrsa revoke client1

klien1 adalah nama klien yang otorisasinya akan dicabut

Ketik "yes" untuk mengonfirmasi.
Buat dan unggah file crl.pem ke server Anda:

$ sudo ./easyrsa gen-crl
$ sudo scp ~/EasyRSA-3.0.4/pki/crl.pem [email protected]_Server:/tmp

Perbarui konfigurasi mesin server Anda untuk memverifikasi pencabutan.

$ sudo cp /tmp/crl.pem /etc/openvpn
$ sudo nano /etc/openvpn/server.conf

Di akhir file tambahkan "crl-verify crl.pem".

Simpan dan keluar.

$ sudo systemctl restart [email protected]

Mulai ulang Server untuk menerapkan perubahan.


Linux
  1. Cara Mengatur dan Mengonfigurasi Otoritas Sertifikat Di Ubuntu 22.04

  2. Cara Mengatur Apache dengan Acara MPM dan PHP-FPM di Ubuntu 20.04

  3. Cara Menginstal dan Mengonfigurasi Server OpenVPN di Ubuntu 20.04

  1. Cara Menginstal dan Mengkonfigurasi Server VPN Algo di Ubuntu 20.04

  2. Cara Menginstal dan Mengonfigurasi StrongSwan VPN di Ubuntu 18.04

  3. Cara menginstal dan mengkonfigurasi Elasticsearch di Ubuntu 18.04

  1. Cara Mengatur Server OpenVPN di Ubuntu 18.04

  2. Cara Mengatur VPN WireGuard di Ubuntu 18.04

  3. Bagaimana Cara Menginstal dan Mengonfigurasi Fail2ban di Ubuntu?