OpenVPN adalah VPN Open-source Secure Socket Layer (SSL) kaya fitur. VPN memungkinkan untuk secara aman menghubungkan jaringan tidak tepercaya seperti jaringan WIFI di hotel atau bandara atau mal. VPN juga memungkinkan koneksi aman ke jaringan perusahaan untuk mengakses sumber daya. Terowongan diamankan dengan menggunakan otentikasi SSL/TLS, sertifikat, kredensial.
Dalam tutorial ini, saya akan menunjukkan cara menyiapkan VPN menggunakan OpenVPN di Ubuntu 20.04 .
Persyaratan sebelumnya
Kami akan menggunakan dua server Ubuntu yang berjalan pada versi 20.04:
- Sebuah Server Otoritas Sertifikat (CA) yang akan memvalidasi permintaan dan menandatangani sertifikat klien.
- OpenVPN server tempat kita akan memasang VPN.
Konfigurasikan server CA
Direkomendasikan untuk menyimpan server mandiri untuk berfungsi sebagai CA Anda (otoritas sertifikat). Ini karena alasan keamanan. Mari kita lanjutkan untuk mengkonfigurasi server CA.
Pertama pastikan sistem diperbarui. Jalankan perintah berikut:
$ sudo apt update
Anda perlu membuat pengguna non-root untuk konfigurasi server Otoritas Sertifikat.
$ sudo adduser malain
Sekarang berikan hak sudo kepada pengguna:
$ sudo usermod -aG sudo malain
Sekarang logout dan login kembali dengan pengguna non-root.
Instal EasyRSA di server CA
Easy-rsa adalah utilitas CLI untuk membangun dan mengelola CA PKI. Easy-RSA akan digunakan oleh server CA untuk menghasilkan kunci pribadi dan sertifikat root publik yang akan digunakan untuk menandatangani permintaan dari klien dan server yang akan bergantung pada CA kami.
Untuk menginstal easy-rsa, unduh alat manajemen PKI dari github menggunakan wget:
$ wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.8/EasyRSA-3.0.8.tgz
Kemudian buka kompres file tgz:
$ tar xvf EasyRSA-3.0.8.tgz
Untuk membatasi akses hanya kepada pengguna, gunakan:
$ chmod 700 EasyRSA-3.0.8
Sekarang pindahkan EasyRSA ke opt
direktori
$ sudo mv EasyRSA-3.0.8 /opt/
Kami menggunakan EasyRSA 3.0.8 versi untuk konfigurasi ini.
Buat CA menggunakan EasyRSA
Pertama, Anda perlu membuat file bernama vars
untuk menyimpan informasi organisasi. Untuk ini, kita dapat menggunakan file contoh yang tersedia di direktori EasyRSA-3.0.8.
Untuk membuat daftar file di bawah direktori EasyRSA, gunakan:
$ cd EasyRSA-3.0.8/ &&ls -l
Keluaran:
-rw-rw-r-- 1 malain malain 1305 Sep 9 2020 COPYING.md-rw-rw-r-- 1 malain malain 5056 Sep 9 2020 ChangeLog-rw-rw-r-- 1 malain malain 2049 Sep 9 2020 README.md-rw-rw-r-- 1 malain malain 3335 Sep 9 2020 README.quickstart.mddrwxrwxr-x 2 malain malain 4096 9 Sep 2020 doc-rwxrwxr-x 1 malain malain 76946 9 Sep 2020 easyrsa -rw-rw-r-- 1 malain malain 18093 9 Sep 2020 gpl-2.0.txt-rw-rw-r-- 1 malain malain 1036 9 Sep 2020 mktemp.txt-rw-rw-r-- 1 malain malain 4616 9 Sep 2020 openssl-easyrsa.cnf-rw-rw-r-- 1 malain malain 8925 9 Sep 2020 vars.exampledrwxrwxr-x 2 malain malain 4096 Mar 28 14:14 x509-types
Buat salinan file vars.example sebagai vars:
$ cp vars.example vars
Sekarang buka file vars dan tambahkan informasi organisasi di akhir file:
set_ASYRSA_REQ_ORG "GOEARSA_REQ_ORG "OPEN-SHARE" OPEN-SHARE" set_ASYRSA_ORG "OPEN-SHARE" EASYRSA_ARS, set_ASYRSA_REQ_CITY, set_var EASYRSA_REQ ec" set_var EASYRSA_DIGEST "sha512"Sekarang inisialisasi PKI kami di server CA kami yang akan membuat folder pki.
$ ./easyrsa init-pki
Sekarang kita dapat membuat publik root dan pasangan kunci pribadi untuk CA kami. Selama proses, biasanya Anda akan diminta memasukkan frasa sandi untuk pasangan kunci kapan pun Anda perlu menandatangani atau mencabut sertifikat. Dalam kasus kami, kami akan menggunakan perintah sehingga kami tidak akan dimintai kata sandi. Anda juga akan diminta untuk menunjukkan Nama Umum (CN) tetapi kita akan meninggalkan yang default dengan menekan tombol Enter.
$ ./easyrsa build-ca nopassCatatan:menggunakan konfigurasi Easy-RSA dari:/opt/EasyRSA-3.0.8/varsMenggunakan SSL:openssl OpenSSL 1.1.1f 31 Mar 2020baca tulisan kunci EC Kunci ECAnda akan segera diminta untuk memasukkan informasi yang akan dimasukkan ke dalam permintaan sertifikat Anda. Apa yang akan Anda masukkan adalah apa yang disebut Distinguished Name atau DN. Ada beberapa bidang tetapi Anda dapat mengosongkannyaUntuk beberapa bidang akan ada nilai default, Jika Anda memasukkan '.', bidang akan dikosongkan.-----Nama Umum (misalnya:nama pengguna, host, atau server Anda) [Easy-RSA CA]:Pembuatan CA selesai dan Anda sekarang dapat mengimpor dan menandatangani permintaan cert. File sertifikat CA baru Anda untuk penerbitan ada di:/opt/EasyRSA-3.0.8/pki/ca.crt
Ini akan membuat sertifikat root bernama file ca.crt di direktori pki dan private key ca.key di direktori pki/private.
$ ls -l pki/total 52-rw------- 1 malain malain 749 Mar 28 14:30 ca.crtdrwx------ 2 malain malain 4096 28 Mar 14:29 certs_by_serialdrwx------ 2 malain malain 4096 28 Mar 14:29 ecparams-rw------- 1 malain malain 0 Mar 28 14:29 index.txt-rw------- 1 malain malain 0 Mar 28 14:29 index.txt.attrdrwx------ 2 malain malain 4096 28 Mar 14:29 dikeluarkan-rw------- 1 malain malain 4616 Mar 28 14:24 openssl-easyrsa.cnfdrwx ------ 2 malain malain 4096 28 Mar 14:30 privatedrwx------ 5 malain malain 4096 28 Mar 14:29 diperbaharuidrwx------ 2 malain malain 4096 28 Mar 14:24 reqsdrwx-- ---- 5 malain malain 4096 Mar 28 14:29 revoked-rw------- 1 malain malain 4575 Mar 28 14:24 safessl-easyrsa.cnf-rw------- 1 malain malain 3 28 Maret 14:29 serial
$ ls -l pki/private/total 4-rw------- 1 malain malain 288 Mar 28 14:29 ca.key
Dengan ini, server CA kami sudah siap.
Instal dan Konfigurasi Server Openvpn
Mari beralih ke server kedua untuk menginstal dan mengkonfigurasi openvpn. Anda juga perlu membuat pengguna non-root di server ini dan memberinya sudo
hak istimewa.
Untuk menginstal openvpn di ubuntu, jalankan perintah berikut:
$ sudo apt update$ sudo apt install openvpn
Di server openvpn, easyrsa akan digunakan untuk membuat permintaan sertifikat yang akan diverifikasi dan ditandatangani oleh CA Server. Ikuti langkah yang sama yang kami ikuti di bagian terakhir untuk menginstal Easyrsa.
$ wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.8/EasyRSA-3.0.8.tgz
Sekarang buka kompres file tgz yang diunduh:
$ tar xvf EasyRSA-3.0.8.tgz
Batasi akses hanya untuk pengguna:
$ chmod 700 EasyRSA-3.0.8
Pindahkan EasyRSA-3.0.8 ke opt
direktori:
$ sudo mv EasyRSA-3.0.8 /opt/
Buat PKI
Sekarang kita perlu membuat PKI yang akan membantu untuk meminta dan mengelola sertifikat TLS untuk klien dan server lain yang akan terhubung ke VPN kami.
Mari kita buat file vars menggunakan file contoh yang sudah tersedia:
$ cp vars.example vars
Sekarang edit file vars dengan menambahkan baris berikut di akhir file:
$ vim vars set_var EASYRSA_ALGO "ec" set_var EASYRSA_DIGEST "sha512"
Untuk membuat map PKI di server openvpn, jalankan easyrsa
file skrip:
$ ./easyrsa init-pki
Keluaran:
Catatan:menggunakan konfigurasi Easy-RSA dari:/opt/EasyRSA-3.0.8/varsinit-pki complete; Anda sekarang dapat membuat CA atau meminta. Dir PKI Anda yang baru dibuat adalah:/opt/EasyRSA-3.0.8/pki
Buat permintaan sertifikat server dan kunci pribadi
Sekarang kita akan membuat kunci pribadi dan permintaan sertifikat di server OpenVPN. Kemudian kami akan mentransfer file permintaan sertifikat ke server CA untuk ditandatangani agar dapat membuat sertifikat yang diperlukan
Berada di folder yang sama, kami dapat membuat permintaan dengan nopass
pilihan. Perintah berikut membuat file kunci pribadi bernama openvpn-server.key dan file permintaan sertifikat bernama openvpn-server.req.
$ ./easyrsa gen-req openvpn-server nopass
Keluaran:
Catatan:menggunakan konfigurasi Easy-RSA dari:/opt/EasyRSA-3.0.8/varsMenggunakan SSL:openssl OpenSSL 1.1.1f 31 Mar 2020Membuat kunci pribadi EC, menulis kunci pribadi baru ke '/opt/EasyRSA-3.0 .8/pki/easy-rsa-4737.CGhQHN/tmp.UGQ9wi'-----Anda akan diminta untuk memasukkan informasi yang akan dimasukkan ke dalam permintaan sertifikat Anda. Yang akan Anda masukkan adalah apa yang disebut Distinguished Name atau DN.Ada beberapa bidang tetapi Anda dapat mengosongkannyaUntuk beberapa bidang akan ada nilai default,Jika Anda memasukkan '.', bidang tersebut akan dikosongkan.-----Nama Umum (mis. :nama pengguna, host, atau server Anda) [openvpn-server]:Pasangan kunci dan permintaan sertifikat selesai. File Anda adalah:req:/opt/EasyRSA-3.0.8/pki/reqs/openvpn-server.reqkey:/opt/EasyRSA-3.0.8/pki/private/openvpn-server.key
Sekarang, salin file kunci server bernama openvpn-server.key ke direktori bernama /etc/openvpn/server.
$ sudo cp /opt/EasyRSA-3.0.8/pki/private/openvpn-server.key /etc/openvpn/server
Kemudian salin file permintaan sertifikat ke server CA :
$ scp /opt/EasyRSA-3.0.8/pki/reqs/openvpn-server.req [email protected]:/tmp
Di server CA, ubah ke direktori easyrsa,
$ cd /opt/EasyRSA-3.0.8/
Untuk mengimpor permintaan , jalankan perintah berikut:
$ ./easyrsa import-req /tmp/openvpn-server.req openvpn-server
Keluaran:
Catatan:menggunakan konfigurasi Easy-RSA dari:/opt/EasyRSA-3.0.8/varsMenggunakan SSL:openssl OpenSSL 1.1.1f 31 Mar 2020Permintaan telah berhasil diimpor dengan nama pendek:openvpn-serverAnda dapat sekarang gunakan nama ini untuk melakukan operasi penandatanganan atas permintaan ini.
Sekarang tandatangani permintaan. Saat kita menandatangani permintaan server, kita harus menggunakan direktif server
sebelum Nama Umum server openvpn kami. Jika itu adalah permintaan klien, kita harus menggunakan direktif client
sebagai gantinya.
Untuk menandatangani permintaan :
$ ./easyrsa sign-req server openvpn-server
Keluaran:
Catatan:menggunakan konfigurasi Easy-RSA dari:/opt/EasyRSA-3.0.8/varsMenggunakan SSL:openssl OpenSSL 1.1.1f 31 Mar 2020Anda akan menandatangani sertifikat berikut. Harap periksa detail yang ditunjukkan di bawah untuk ketepatan. Perhatikan bahwa permintaan ini belum diverifikasi secara kriptografis. Pastikan itu berasal dari sumber tepercaya atau Anda telah memverifikasi checksum permintaan dengan pengirim. Subjek permintaan, untuk ditandatangani sebagai sertifikat server selama 825 hari:subjek=commonName =openvpn-serverKetik kata 'ya' untuk melanjutkan, atau masukan lain untuk dibatalkan. Konfirmasikan detail permintaan:yesMenggunakan konfigurasi dari /opt/EasyRSA-3.0.8/pki/easy-rsa-4100.IbygpP/tmp.hJY2T5Periksa apakah permintaan cocok dengan tanda tanganSignature okNama Terhormat Subjek adalah sebagai berikutnamaumum :ASN.1 12:'openvpn -Server'Sertifikat akan disertifikasi hingga 1 Juli 19:50:36 2023 GMT (825 hari)Tulis database dengan 1 entri baruData Base DiperbaruiSertifikat dibuat di:/opt/EasyRSA-3.0.8/pki/issued/openvpn-server .crt
Sekarang permintaan sertifikat server OpenVPN telah ditandatangani oleh server CA, kita perlu mentransfer permintaan yang ditandatangani dan sertifikat publik ke server OpenVPN.
$ scp pki/{ca.crt,issued/openvpn-server.crt} [email protected]:/tmp
$ sudo cp /tmp/{ca.crt,openvpn-server.crt} /etc/openvpn/server
Kami sekarang akan membuat kunci pra-berbagi tls-crypt untuk memastikan bahwa server OpenVPN kami mampu mengatasi lalu lintas yang tidak diautentikasi, pemindaian port, dan beberapa serangan yang dapat menggunakan banyak sumber daya server.
$ ./easyrsa gen-dh
Keluaran:
Catatan:menggunakan konfigurasi Easy-RSA dari:/opt/EasyRSA-3.0.8/varsMenggunakan SSL:openssl OpenSSL 1.1.1f 31 Mar 2020Menghasilkan parameter DH, prime aman panjang 2048 bit, generator 2Ini akan memakan waktu lama ..................................+................. ........................................................ ........................................................ ........................................................ ........................+.......+.........+. .......+................................................ ...................................................++* ++*++*++*Parameter DH ukuran 2048 dibuat di /opt/EasyRSA-3.0.8/pki/dh.pem
$ openvpn --genkey --secret ta.key
Sekarang salin file kunci dan pem ke direktori /etc/openvpn/server:
$ sudo cp ta.key pki/dh.pem /etc/openvpn/server
Buat sertifikat klien dan pasangan kunci
Kita perlu membuat direktori untuk menyimpan sertifikat dan kunci klien. Pastikan untuk memberikan izin kepada pengguna non-root.
$ sudo mkdir -p /opt/client-configs/keys$ sudo chown franck:franck -R /opt/client-configs$ sudo chmod 700 -R /opt/client-configs
Buat permintaan untuk sertifikat klien:
$ cd /opt/EasyRSA-3.0.8$ ./easyrsa gen-req my-pc nopass
Keluaran:
Catatan:menggunakan konfigurasi Easy-RSA dari:/opt/EasyRSA-3.0.8/varsMenggunakan SSL:openssl OpenSSL 1.1.1f 31 Mar 2020Membuat kunci pribadi EC menulis kunci pribadi baru ke '/opt/EasyRSA-3.0.8/ pki/easy-rsa-6961.m7fBMu/tmp.dkqaZI'-----Anda akan diminta untuk memasukkan informasi yang akan dimasukkan ke dalam permintaan sertifikat Anda. Yang akan Anda masukkan adalah apa yang disebut Distinguished Name atau a DN.Ada beberapa bidang tetapi Anda dapat mengosongkannyaUntuk beberapa bidang akan ada nilai default,Jika Anda memasukkan '.', bidang tersebut akan dikosongkan.-----Nama Umum (mis:pengguna Anda , host, atau nama server) [my-pc]:Permintaan keypair dan sertifikat selesai. File Anda adalah:req:/opt/EasyRSA-3.0.8/pki/reqs/my-pc.reqkey:/opt/EasyRSA-3.0.8/pki/private/my-pc.key
Sekarang salin kunci klien ke direktori konfigurasi klien:
$ cp pki/private/my-pc.key /opt/client-configs/keys/
Salin file permintaan sertifikat klien ke server CA:
$ scp pki/reqs/my-pc.req [email protected]:/tmp
Di server CA, impor CSR:
$ cd /opt/EasyRSA-3.0.8$ ./easyrsa import-req /tmp/my-pc.req my-pcCatatan:menggunakan konfigurasi Easy-RSA dari:/opt/EasyRSA-3.0.8 /varsMenggunakan SSL:openssl OpenSSL 1.1.1f 31 Mar 2020Permintaan telah berhasil diimpor dengan nama pendek:my-pcAnda sekarang dapat menggunakan nama ini untuk melakukan operasi penandatanganan pada permintaan ini.
Sekarang kita harus menandatangani permintaan untuk klien, ketik:
$ ./easyrsa sign-req client my-pc
Keluaran:
Catatan:menggunakan konfigurasi Easy-RSA dari:/opt/EasyRSA-3.0.8/varsMenggunakan SSL:openssl OpenSSL 1.1.1f 31 Mar 2020Anda akan menandatangani sertifikat berikut. Harap periksa detail yang ditunjukkan di bawah untuk ketepatan. Perhatikan bahwa permintaan ini belum diverifikasi secara kriptografis. Pastikan itu berasal dari sumber tepercaya atau Anda telah memverifikasi checksum permintaan dengan pengirim. Subjek permintaan, untuk ditandatangani sebagai sertifikat klien selama 825 hari:subjek=commonName =my-pcKetik kata 'ya' untuk melanjutkan, atau masukan lain untuk dibatalkan. Konfirmasikan detail permintaan:ya Menggunakan konfigurasi dari /opt/EasyRSA-3.0.8/pki/easy-rsa-5511.IwDcbS/tmp.doUbCvPeriksa apakah permintaan cocok dengan tanda tanganSignature okNama Terhormat Subjek adalah sebagai berikutnamaumum :ASN.1 12:' my-pc'Certificate akan disertifikasi hingga 1 Jul 21:33:52 2023 GMT (825 hari)Tulis database dengan 1 entri baruData Base UpdatedSertifikat dibuat di:/opt/EasyRSA-3.0.8/pki/issued/my- pc.crt
Salin sertifikat klien di server openvpn:
$ scp pki/issued/my-pc.crt [email protected]:/tmp
Sekarang di server openvpn, kita perlu menyalin semua file klien ke direktori klien yang telah kita buat sebelumnya.
$ sudo cp /tmp/my-pc.crt /opt/client-configs/keys/
$ sudo cp /etc/openvpn/server/ca.crt /opt/client-configs/keys/
$ cp /opt/EasyRSA-3.0.8/ta.key /opt/client-configs/keys/
Pastikan bahwa pengguna non-root memiliki izin pada file tersebut.
$ sudo chown franck:franck /opt/client-configs/keys/*
Konfigurasikan layanan VPN
Pertama-tama kita harus membuat salinan template yang akan digunakan
$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/server/
Kemudian buka kompresi file
$ sudo gzip -d /etc/openvpn/server/server.conf.gz
Dan masuk ke folder
$ cd /etc/openvpn/server
Beberapa baris akan diganti agar sesuai dengan konfigurasi kami::
- Cipher kriptografi akan disetel ke
AES-256-CBC
- Algoritme intisari pesan HMAC akan menjadi
sha256
- Karena kita juga menggunakan parameter Diffie-Hellman, kita akan menyetelnya ke
dh.pem
- Kami tidak akan menggunakan pengguna tidak ada dan grup nogroup untuk menjalankan openvpn tanpa hak istimewa setelah dimulai
- Kami akan mendorong perubahan dns untuk mengarahkan semua lalu lintas melalui vpn dengan nilai
push redirect-gateway def1 bypass-dhcp
,push dhcp-option DNS 208.67.222.222
,push dhcp-option DNS 208.67.220.220
- Kami akan mempertahankan port default
1194
- Kami akan menggunakan
udp
protokol - kita harus menunjukkan kunci
openvpn-server.key
dan sertifikatopenvpn-server.crt
untuk digunakan sebagai kredensial
Jadi filenya akan terlihat seperti di bawah ini:
$ sudo vim /etc/openvpn/server/server.conf tls-crypt ta.key cipher AES-256-CBC auth SHA256 dh dh.pem user none group nogroup push "redirect-gateway def1 bypass-dhcp " tekan "dhcp-option DNS 208.67.222.222" tekan "dhcp-option DNS 208.67.220.220" port 1194 proto udp eksplisit-exit-notify 1 sertifikat openvpn-server.crt key openvpn-server.key
Anda harus mengaktifkan penerusan ip dengan mengedit nilai net.ipv4.ip_forward di /etc/sysctl.conf.
$ sudo vim /etc/sysctl.conf net.ipv4.ip_forward=1
Untuk membuat perubahan yang kita buat di /etc/sysctl.conf efektif, jalankan:
$ sudo sysctl -pnet.ipv4.ip_forward =1
Sekarang Anda perlu mengizinkan OpenVPN melalui firewall Anda dengan mengaktifkan penyamaran. Untuk melakukannya, Anda perlu mengidentifikasi nama antarmuka jaringan publik Anda:
$ rute ip | grep defaultdefault melalui X.X.X.X dev eth0 proto static
Dalam kasus kami ini adalah eth0. Sekarang kita harus menambahkan aturan penyamaran dalam konfigurasi firewall, jadi kita akan menambahkan baris di bawah ini di bagian atas file aturan:
$ sudo vim /etc/ufw/before.rules # MULAI ATURAN OPENVPN # Aturan tabel NAT *nat :POSTROUTING ACCEPT [0:0] # Izinkan lalu lintas dari klien OpenVPN ke antarmuka server publik eth0 -A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE COMMIT # AKHIR ATURAN OPENVPN
Sekarang mari kita edit ufw untuk mengizinkan paket yang diteruskan secara default.
$ sudo vim /etc/default/ufw DEFAULT_FORWARD_POLICY="ACCEPT"
Buka port openvpn di firewall:
$ sudo ufw allow '1194/udp'
Untuk memulai kembali layanan ufw, ketik:
$ sudo ufw nonaktifkan &&sudo ufw aktifkan
Untuk mengaktifkan layanan openvpn untuk memulai sebagai startup sistem, ketik:
$ sudo systemctl aktifkan openvpn-server@server
Untuk memulai openvpn, ketik:
$ sudo systemctl start openvpn-server@server
Anda dapat memeriksa status openvpn dengan:
$ sudo systemctl status openvpn-server@server
Keluaran:
● [email protected] - Layanan OpenVPN untuk server Dimuat:dimuat (/lib/systemd/system/[email protected]; dinonaktifkan; preset vendor:diaktifkan) Aktif:aktif (berjalan) sejak Min 2021-03-28 23:30:57 UTC; 8 dtk yang lalu Dokumen:man:openvpn(8) https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage https://community.openvpn.net/openvpn/wiki/HOWTO PID Utama:78132 (openvpn) Status:" Urutan Inisialisasi Selesai" Tugas:1 (batas:1073) Memori:1,0M CGroup:/system.slice/system-openvpn\x2dserver.slice/[email protected] 78132 /usr/sbin/openvpn --status /run/openvpn-server/status-server.log --status-version 2 --suppress-timestamps --config server.conf 28 Mar 23:30:57 localhost systemd[1]:Memulai layanan OpenVPN untuk server...Mar 28 23:30:57 localhost systemd[1]:Memulai layanan OpenVPN untuk server.
Untuk memeriksa antarmuka terowongan, ketik:
$ ip addr show tun0
Keluaran:
3: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 lingkup global tun0 valid_lft selamanya lebih disukai_lft selamanya inet6 fe80::c3d9:85d1:e2a9:6b2c/64 tautan lingkup privasi-stabil valid_lft selamanya lebih disukai_lft selamanya
Konfigurasikan file vpn untuk klien
$ sudo mkdir -p /opt/client-configs/files
Sekarang kita harus menyalin contoh file konfigurasi
$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /opt/client-configs/base.conf
Berikan izin kepada pengguna non-root
$ sudo chown franck:franck -R /opt/client-configs/
Edit file base.conf
$ vim /opt/client-configs/base.conf remote your_server_ip 1194 proto udp # Turunkan hak istimewa setelah inisialisasi (khusus non-Windows) user none group nogroup #ca ca.crt #cert client.crt #key client.key #tls-auth ta.key 1 cipher AES-256-CBC auth SHA256 key-direction 1 # Untuk klien yang menggunakan resolvconf untuk resolusi DNS, batalkan komentar pada baris di bawah ini pada komputer klien; skrip-keamanan 2; up /etc/openvpn/update-resolv-conf; down /etc/openvpn/update-resolv-conf # Untuk klien yang menggunakan systemd-resolved untuk resolusi DNS, batalkan komentar pada baris di bawah ini pada komputer klien; skrip-keamanan 2; up /etc/openvpn/update-systemd-resolved; down /etc/openvpn/update-systemd-resolved; bawah-pra; dhcp-option DOMAIN-ROUTE .
Sekarang kita akan membuat skrip untuk menghasilkan sertifikat dan file terenkripsi pada klien. Script juga akan membuat salinan file base.conf dan mengumpulkan semua kunci dan sertifikat yang dibuat untuk klien. Untuk setiap klien, kita perlu membuat sertifikat dan kunci sebelum menjalankan skrip
$ vim /opt/client-configs/make_config.sh #!/bin/bash # Argumen pertama:Pengidentifikasi klien KEY_DIR=/opt/client-configs/keys OUTPUT_DIR=/opt/client-configs/files BASE_CONFIG=/opt/client-configs/base.conf cat ${BASE_CONFIG} \ <(echo -e '') \ ${KEY_DIR}/ca.crt \ <(echo -e ' \ n') \ ${KEY_DIR}/${1}.crt \ <(echo -e ' \n') \ ${KEY_DIR}/${1}.key \ <(echo -e ' \n') \ ${KEY_DIR}/ta.key \ <(echo -e ' ') \> ${OUTPUT_DIR}/$ {1}.ovpn
Pastikan hanya pengguna non-root yang dapat menjalankan skrip.
$ chmod 700 /opt/client-configs/make_config.sh
Sekarang Anda dapat membuat file koneksi klien berdasarkan kunci klien dan konfigurasi sertifikat (my-pc.crt dan my-pc.key)
$ cd /opt/client-configs
Sekarang jalankan skrip diikuti dengan nama umum yang digunakan untuk klien yang akan membuat file vpn klien untuk digunakan.
$ ./make_config.sh my-pc
Anda dapat memeriksa hasilnya:
$ ls -l files/total 12-rw-rw-r-- 1 franck franck 8598 30 Mar 11:12 my-pc.ovpn
Hubungkan klien ke koneksi OpenVPN
Instal openvpn di klien. Ini akan digunakan untuk membuat koneksi vpn dengan server
$ sudo apt update &&sudo apt install openvpn -y
Sekarang salin file klien OpenVPN yang ada di server ke komputer klien Anda. Jadi, di komputer klien Anda lakukan perintah berikut:
$ rsync -av [email protected]:/opt/client-configs/files/my-pc.ovpn .
Sebelum mengedit file konfigurasi OpenVPN klien, kita harus memeriksa apakah kita menggunakan resolvconf atau systemd-resolved untuk resolusi DNS
$ cat /etc/resolv.conf OUTPUT:# File ini dikelola oleh man:systemd-resolved(8). Jangan mengedit. . . . server nama 127.0.0.53 opsi edns0
Dengan nilai nameserver 127.0.0.53
, ini menunjukkan bahwa Anda menggunakan systemd-resolved. Jadi, instal paket yang akan membantu systemd-resolved untuk menggunakan VPN untuk resolusi DNS saat terhubung.
$ sudo apt install openvpn-systemd-resolved
Sekarang kita dapat mengedit file klien vpn dengan menghapus komentar pada baris yang diperlukan untuk systemd-resolved
$ vim my-pc.ovpn script-security 2 up /etc/openvpn/update-systemd-resolved down /etc/openvpn/update-systemd-resolved down-pre dhcp-option DOMAIN-ROUTE .
Untuk sistem yang menggunakan update-resolv-conf, Anda harus menghapus komentar pada baris
script-security 2 up /etc/openvpn/update-resolv-conf down /etc/openvpn/update-resolv-conf
Sekarang mari kita coba menghubungkan ke VPN menggunakan perintah openvpn ke file konfigurasi klien:
$ sudo openvpn --config my-pc.ovpn
Anda dapat memeriksa informasi ip untuk antarmuka terowongan
$ ip a
Ini akan menunjukkan alamat ip terowongan dan kita dapat melakukan ping ke server OpenVPN. Dengan ini, Anda dapat mengonfirmasi bahwa Anda dapat menjangkau server seolah-olah Anda berada di jaringan pribadi yang sama.
Kesimpulan
Sangat mudah untuk mengatur koneksi VPN saat menggunakan OpenVPN. Ini adalah solusi yang baik ketika Anda ingin mengatur solusi VPN di server cloud Anda tanpa menggunakan solusi khusus seperti firewall virtual atau apa pun. Ini adalah solusi yang cepat dan aman.