GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Menginstal OpenVPN Server dan Klien dengan Easy-RSA 3 di CentOS 8

OpenVPN adalah aplikasi sumber terbuka yang memungkinkan Anda membuat jaringan pribadi yang aman melalui internet publik. OpenVPN mengimplementasikan jaringan pribadi virtual (VPN) untuk membuat koneksi yang aman. OpenVPN Menggunakan perpustakaan OpenSSL untuk menyediakan enkripsi dan menyediakan beberapa mekanisme otentikasi, seperti berbasis sertifikat, kunci yang dibagikan sebelumnya, dan otentikasi nama pengguna/kata sandi.

Dalam tutorial ini, kami akan menunjukkan kepada Anda bagaimana langkah demi langkah menginstal dan mengkonfigurasi OpenVPN di Server CentOS 8. Dan kami akan menerapkan otentikasi OpenVPN berbasis sertifikat.

Prasyarat

  • Server CentOS 8
  • Hak istimewa root

Apa yang akan kita lakukan?

  • Instal OpenVPN dan Easy-RSA
  • Konfigurasi Easy-RSA 3 Vars
  • Buat Kunci OpenVPN
  • Konfigurasi Server OpenVPN
  • Konfigurasikan Firewalld dan Aktifkan Penerusan Port
  • Penyiapan Klien
  • Pengujian

Langkah 1 - Instal OpenVPN dan Easy-RSA

Pertama, kita akan menambahkan repositori EPEL (Extra Package for Enterprise Linux) dan menginstal paket OpenVPN terbaru dan mengunduh skrip easy-rsa ke sistem CentOS 8.

Instal repositori EPEL menggunakan perintah dnf di bawah ini.

dnf install epel-release

Setelah itu, instal paket OpenVPN terbaru 2.4.7.

dnf install openvpn

Setelah instalasi selesai, buka '/etc/openvpn' dan unduh skrip easy-rsa menggunakan perintah wget di bawah ini.

cd /etc/openvpn/
wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.6/EasyRSA-unix-v3.0.6.tgz

Sekarang ekstrak file 'EasyRSA-unix-v3.0.6.tgz' dan ganti nama direktori menjadi 'easy-rsa'.

tar -xf EasyRSA-unix-v3.0.6.tgz
mv EasyRSA-v3.0.6/ easy-rsa/; rm -f EasyRSA-unix-v3.0.6.tgz

Paket OpenVPN dan skrip easy-rsa telah diinstal ke sistem CentOS 8.

Langkah 2 - Konfigurasi Easy-RSA 3

Pada langkah ini, kita akan mengkonfigurasi easy-rsa 3 dengan membuat file 'vars' baru. File 'vars' berisi pengaturan Easy-RSA 3.

Buka direktori '/etc/openvpn/easy-rsa/' dan buat skrip vars baru menggunakan editor vim.

cd /etc/openvpn/easy-rsa/
vim vars

Rekatkan konfigurasi vars easy-rsa 3 di bawah ini.

 set_var easyrsa "$ pwd" 
set_var easyrsa_pki "$ easyrsa /pki"
set_var easyrsa_dn "cn_only"
set_var easyrsa_req_country "id"
set_var evarysa_req_country "id"
/>set_var EASYRSA_REQ_CITY        "Jakarta"
set_var EASYRSA_REQ_ORG         "hakase-labs CERTIFICATE AUTHORITY"
set_var EASYRSA_REQ_EMAIL      U__mail ""  U _>" 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" EASYRSA_EXT_DIR         "$EASYRSA/x509-types"
set_var EASYRSA_SSL_CONF       "$EASYRSA/openssl-easyrsa.cnf"
set_var EASYRSA_     "presha     >

Simpan dan keluar.

Catatan:

  • Ubah nilai variabel sesuai kebutuhan.
  • Tingkatkan 'EASYRSA_KEY_SIZE' untuk keamanan yang lebih baik.
  • Ubah 'EASYRSA_CA_EXPIRE' dan 'EASYRSA_CERT_EXPIRE'.

Sekarang buat file 'vars' dapat dieksekusi dengan mengubah izin file.

chmod +x vars

Konfigurasi easy-rsa 3 telah selesai.

Langkah 3 - Bangun Kunci OpenVPN

Pada langkah ini, kita akan membangun kunci OpenVPN berdasarkan file 'vars' easy-rsa 3 yang telah kita buat. Kami akan membangun kunci CA, kunci Server dan Klien, file PEM DH dan CRL.

Kami akan membangun semua kunci tersebut menggunakan baris perintah 'easyrsa'. Buka direktori '/etc/openvpn/easy-rsa/'.

cd /etc/openvpn/easy-rsa/3/

- Inisialisasi dan Build CA

Sebelum membangun server dan kunci klien, kita perlu menginisialisasi direktori PKI (Public Key Infrastructure) dan membangun kunci CA.

Mulai direktori PKI dan buat kunci CA menggunakan perintah di bawah ini.

./easyrsa init-pki
./easyrsa build-ca

Sekarang ketikkan kata sandi untuk kunci CA Anda dan Anda akan mendapatkan file 'ca.crt' dan 'ca.key' di bawah direktori 'pki'.

- Membangun Kunci Server

Sekarang kita ingin membangun kunci server, dan kita akan membangun kunci server bernama 'hakase-server'.

Buat kunci server 'hakase-server' menggunakan perintah di bawah ini.

./easyrsa gen-req hakase-server nopass

Catatan:

  • nopass =opsi untuk menonaktifkan kata sandi untuk kunci 'hakase-server'.

Dan tandatangani kunci 'hakase-server' menggunakan sertifikat CA kami.

./easyrsa sign-req server hakase-server

Anda akan dimintai kata sandi 'CA', ketik kata sandi dan tekan Enter. Dan Anda akan mendapatkan file sertifikat 'hakase-server.crt' di bawah direktori 'pki/issued/'.

Verifikasi file sertifikat menggunakan perintah OpenSSL dan pastikan tidak ada kesalahan.

openssl verifikasi -CAfile pki/ca.crt pki/issued/hakase-server.crt

Semua kunci sertifikat server telah dibuat. Kunci pribadi server terletak di 'pki/private/hakase-server.key', dan sertifikat server di 'pki/issued/hakase-server.crt'.

- Bangun Kunci Klien

Sekarang kita perlu membangun kunci untuk klien. Kami akan membuat kunci klien baru bernama 'klien01'.

Buat kunci 'client01' menggunakan perintah di bawah ini.

./easyrsa gen-req client01 nopass

Sekarang tandatangani kunci 'client01' menggunakan sertifikat CA kami seperti di bawah ini.

./easyrsa sign-req client client01

Ketik 'ya' untuk mengonfirmasi permintaan sertifikat klien, lalu ketik sandi CA.

Sertifikat klien bernama 'client01' telah dibuat, verifikasi sertifikat klien menggunakan perintah openssl.

openssl verifikasi -CAfile pki/ca.crt pki/issued/client01.crt

Pastikan tidak ada kesalahan.

- Bangun Kunci Diffie-Hellman

Kunci Diffie-Hellman diperlukan untuk keamanan yang lebih baik. Dan kita akan membuat kunci DH '2048' berdasarkan file konfigurasi 'vars' yang telah dibuat di atas.

Buat kunci Diffie-Hellman menggunakan perintah di bawah ini.

./easyrsa gen-dh

Dan kunci DH telah dibuat, terletak di direktori 'pki'.

- Opsional:Buat Kunci CRL

Kunci CRL (Daftar Pencabutan Sertifikat) akan digunakan untuk mencabut kunci klien. Jika Anda memiliki beberapa sertifikat klien dari klien di server VPN Anda, dan Anda ingin menghapus kunci seseorang, Anda hanya perlu mencabutnya menggunakan perintah easy-rsa.

Jika Anda ingin mencabut beberapa kunci, jalankan perintah di bawah ini.

./easyrsa mencabut seseorang

Dan kemudian buat kunci CRL.

./easyrsa gen-crl

File PEM CRL telah dibuat di bawah direktori 'pki' - berikut ini adalah contoh di server saya.

- Salin File Sertifikat

Semua sertifikat telah dibuat, sekarang salin file sertifikat dan file PEM.

Salin Kunci dan Sertifikat Server.

cp pki/ca.crt /etc/openvpn/server/
cp pki/issued/hakase-server.crt /etc/openvpn/server/
cp pki/private/hakase-server. kunci /etc/openvpn/server/

Salin Kunci dan Sertifikat client01.

cp pki/ca.crt /etc/openvpn/client/
cp pki/issued/client01.crt /etc/openvpn/client/
cp pki/private/client01.key /etc/ openvpn/client/

Salin Kunci DH dan CRL.

cp pki/dh.pem /etc/openvpn/server/
cp pki/crl.pem /etc/openvpn/server/

Semua sertifikat untuk server dan klien telah disalin ke setiap direktori.

Langkah 4 - Konfigurasi OpenVPN

Pada langkah ini, kita akan membuat konfigurasi baru 'server.conf' untuk server OpenVPN.

Buka direktori '/etc/openvpn/server/' dan buat file konfigurasi baru 'server.conf' menggunakan vim.

cd /etc/openvpn/server/
vim server.conf

Rekatkan konfigurasi server OpenVPN berikut di sana.

# Port OpenVPN, Protokol, dan Tun
port 1194
proto udp
dev tun

# Sertifikat Server OpenVPN - CA, kunci server dan sertifikat
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/hakase-server.crt
key /etc/openvpn/server/hakase-server.key

#DH dan kunci CRL
dh /etc/openvpn/server/dh.pem
crl-verify /etc/openvpn/server/crl.pem

# Konfigurasi Jaringan - Jaringan internal
# Redirect semua Koneksi melalui OpenVPN Server
server 10.5.0.0 255.255.255.0
push "redirect-gateway def1"

# Menggunakan DNS dari https://dns.watch
push "dhcp-option DNS 84.200.69.80"
push "dhcp-option DNS 84.200.70.40"

#Aktifkan banyak klien untuk terhubung dengan kunci sertifikat yang sama
duplikat-cn

# Keamanan TLS
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:TL S-DHE-RSA-WITH-AES-128-CBC-SHA256
auth SHA512
auth-nocache

# Konfigurasi Lainnya
keepalive 20 60
bertahan-kunci
bertahan-tun
kompres lz4
daemon
tidak ada pengguna
tidak ada grup

# Log OpenVPN
log- tambahkan /var/log/openvpn.log
kata kerja 3

Simpan dan keluar.

Dan konfigurasi server OpenVPN telah dibuat.

Langkah 5 - Aktifkan Penerusan Port dan Konfigurasi Perutean di Firewalld

Pada langkah ini, kita akan mengaktifkan modul kernel Port-forwarding dan mengkonfigurasi perutean 'Firewalld' untuk OpenVPN.

Aktifkan modul kernel penerusan port dengan menjalankan perintah berikut.

echo 'net.ipv4.ip_forward =1'>> /etc/sysctl.conf
sysctl -p

Selanjutnya, konfigurasi perutean menggunakan Firewalld untuk OpenVPN.

Tambahkan layanan OpenVPN ke zona firewall 'publik' dan 'tepercaya'.

firewall-cmd --permanent --add-service=openvpn
firewall-cmd --permanent --zone=trusted --add-service=openvpn

Setelah itu, tambahkan 'tun0' ke zona 'tepercaya'.

firewall-cmd --permanent --zone=trusted --add-interface=tun0

Sekarang Aktifkan 'MASQUERADE' di firewall zona 'publik' default.

firewall-cmd --permanent --add-masquerade

Aktifkan NAT untuk alamat IP internal OpenVPN '10.5.0.0/24' ke alamat IP eksternal 'SERVERIP'.

SERVERIP=$(ip route get 1.1.1.1 | awk 'NR==1 {print $(NF-2)}')
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s  10.5.0.0/24 -o $SERVERIP -j MASQUERADE

Dan muat ulang firewalld.

firewall-cmd --reload

Penerusan Port dan konfigurasi perutean Firewalld telah selesai, mulai layanan OpenVPN dan aktifkan untuk diluncurkan secara otomatis setiap kali sistem boot.

systemctl start ope[email protected]
systemctl enable [email protected]

Setelah itu, periksa layanan OpenVPN menggunakan perintah di bawah ini.

netstat -plntu
systemctl status [email protected]

Dan Anda akan mendapatkan hasil seperti di bawah ini.

Akibatnya, layanan OpenVPN aktif dan berjalan pada protokol UDP dengan port default '1194'.

Langkah 6 - Pengaturan Klien OpenVPN

Buka direktori '/etc/openvpn/client' dan buat file konfigurasi klien openvpn baru 'client01.ovpn' menggunakan vim.

cd /etc/openvpn/client
vim client01.ovpn

Rekatkan konfigurasi klien OpenVPN berikut di sana.

client
dev tun
proto udp

remote xxx.xxx.xxx.xxx 1194

ca ca.crt
cert client01.crt
key client01.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-coba lagi tak terbatas
kompres lz4
nobind
bertahan-kunci
persistent-tun
mute-replay-warnings
verba 3

Simpan dan keluar.

Sekarang kompres direktori '/etc/openvpn/client' ke file 'zip' atau 'tar.gz' dan unduh file terkompresi menggunakan SCP dari komputer lokal Anda.

Kompres direktori '/etc/openvpn/client' ke file 'client01.tar.gz'.

cd /etc/openvpn/
tar -czvf client01.tar.gz client/*

Sekarang Anda dapat mengunduh file OpenVPN terkompresi menggunakan server FTP atau perintah scp seperti di bawah ini.

scp [dilindungi email]:/etc/openvpn/client01.tar.gz .

Langkah 7 - Hubungkan ke OpenVPN

Pengujian pada Klien.

- Di Linux

Instal paket OpenVPN dan jika Anda menginginkan konfigurasi GUI, instal pengelola jaringan OpenVPN.

sudo apt install openvpn network-manager-openvpn network-manager-openvpn-gnome -y

Jika Anda ingin terhubung menggunakan shell terminal, jalankan perintah OpenVPN di bawah ini.

openvpn --config client01.ovpn

Saat Anda terhubung ke OpenVPN, buka tab terminal baru dan periksa koneksi menggunakan perintah curl.

curl ifconfig.io

Dan Anda akan mendapatkan alamat IP server OpenVPN.

- Di Mac OS

Unduh Tunnelblick dan instal.

Ekstrak file 'client01.tar.gz' dan ganti nama direktori 'client' menjadi 'client01.tblk'.

tar -xzvf client01.tar.gz
mv client client01.tblk

Klik dua kali 'client01.tblk' dan Tunnelblick akan secara otomatis mendeteksi konfigurasi OpenVPN dan kemudian mengimpor.

Sekarang hubungkan melalui Tunnelblick di bilah Atas.

- Di Windows

Download klien openvpn untuk windows dan impor konfigurasi.


Cent OS
  1. Cara Menginstal dan Menggunakan Server TeamSpeak di CentOS 7

  2. Cara Menginstal OpenVPN di CentOS/RHEL 8

  3. Cara menginstal dan menghosting server OpenVPN dengan Docker

  1. Cara Menginstal OpenVPN di CentOS 7 atau 8

  2. Cara Menginstal dan Mengonfigurasi Gitlab di CentOS 8

  3. Cara Menginstal dan Mengonfigurasi Server OpenVPN di Ubuntu 20.04

  1. Cara Menginstal dan Mengkonfigurasi VNC di CentOS 7

  2. Cara Menginstal dan Mengonfigurasi Server NFS di CentOS 8

  3. Cara Menginstal dan Mengkonfigurasi VNC di CentOS 8