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

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

OpenVPN adalah aplikasi open source 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 CentOS 7.6. Dan kami akan menerapkan otentikasi OpenVPN berbasis sertifikat.

Prasyarat

  • CentOS 7.6
  • Hak istimewa root

Apa yang akan kita lakukan?

  1. Instal OpenVPN dan Easy-RSA
  2. Konfigurasi Easy-RSA 3 Vars
  3. Buat Kunci OpenVPN
  4. Konfigurasi Server OpenVPN
  5. Konfigurasikan Firewalld dan Aktifkan Penerusan Port
  6. Penyiapan Klien
  7. Pengujian

Langkah 1 - Instal OpenVPN dan Easy-RSA

Dalam tutorial ini, kita akan menggunakan server centos versi terbaru (7.5), dan kita akan menggunakan OpenVPN 2.4 dengan easy-rsa 3. Sebelum menginstal paket OpenVPN dan easy-rsa, pastikan repositori 'epel' diinstal pada sistem. Jika Anda tidak memilikinya, instal repositori epel menggunakan perintah yum di bawah ini.

yum install epel-release -y

Sekarang instal OpenVPN 2.4 dengan easy-rsa 3 pada sistem.

yum install openvpn easy-rsa -y

Ketika instalasi selesai, periksa versi openvpn dan easy-rsa.

openvpn --version
ls -lah /usr/share/easy-rsa/

OpenVPN 2.4 dengan easy-rsa 3 telah diinstal.

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/' dan salin skrip 'easy-rsa'.

cd /etc/openvpn/
cp -r /usr/share/easy-rsa /etc/openvpn/

Sekarang masuk ke direktori 'easy-rsa/3/' dan buat file vars baru menggunakan vim.

cd /etc/openvpn/easy-rsa/3/
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 EASYRSA_REQ_PROVINCE    "Jakarta"
set_var EASYRSA_REQ_CITY        "Jakarta"
set_var EASYRSA_REQ_ORG         "hakase-labs CERTIFICATE AUTHORITY"
set_var EASYRSA_REQ_EMAIL       "[email protected]"
set_var EASYRSA_REQ_OU          "HAKASE-LABS 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      "HAKASE-LABS CERTIFICATE AUTHORITY"
set_var EASYRSA_EXT_DIR         "$EASYRSA/x509-types"
set_var EASYRSA_SSL_CONF        "$EASYRSA/openssl-1.0.cnf"
set_var EASYRSA_DIGEST          "sha256"

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

File vars untuk pengaturan Easy-RSA 3 telah dibuat.

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/3'.

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

Inisialisasi dan Build CA

Sebelum membuat kunci apa pun, kita perlu menginisialisasi direktori PKI dan membuat 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'.

Build Server Key

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:

  • tidak lulus =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 verify -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 verify -CAfile pki/ca.crt pki/issued/client01.crt

Buat Kunci Diffie-Hellman

Tindakan ini akan memakan banyak waktu, tergantung pada panjang kunci yang kami pilih dan entropi yang tersedia di server. Kami akan menggunakan kunci panjang yang kami definisikan pada file 'vars'.

Buat kunci Diffie-Hellman menggunakan perintah di bawah ini.

./easyrsa gen-dh

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 di server vpn Anda, dan Anda ingin mencabut beberapa kunci, Anda hanya perlu mencabutnya menggunakan perintah easy-rsa.

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

./easyrsa revoke someone

Dan kemudian buat kunci CRL.

./easyrsa gen-crl

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

Salin Berkas 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.key /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/

Langkah 4 - Konfigurasi OpenVPN

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

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

cd /etc/openvpn/
vim server.conf

Rekatkan konfigurasi server OpenVPN berikut di sana.

# OpenVPN Port, Protocol and the Tun
port 1194
proto udp
dev tun

# OpenVPN Server Certificate - CA, server key and certificate
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/hakase-server.crt
key /etc/openvpn/server/hakase-server.key

#DH and CRL key
dh /etc/openvpn/server/dh.pem
crl-verify /etc/openvpn/server/crl.pem

# Network Configuration - Internal network
# Redirect all Connection through OpenVPN Server
server 10.10.1.0 255.255.255.0
push "redirect-gateway def1"

# Using the DNS from https://dns.watch
push "dhcp-option DNS 84.200.69.80"
push "dhcp-option DNS 84.200.70.40"

#Enable multiple client to connect with same Certificate key
duplicate-cn

# TLS Security
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

# Other Configuration
keepalive 20 60
persist-key
persist-tun
comp-lzo yes
daemon
user nobody
group nobody

# OpenVPN Log
log-append /var/log/openvpn.log
verb 3

Simpan dan keluar.

Konfigurasi untuk OpenVPN telah dibuat.

Langkah 5 - Aktifkan Penerusan Port dan Konfigurasi Firewalld Perutean

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 layanan daftar firewalld dan tambahkan antarmuka 'tun0' ke zona tepercaya firewalld.

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

Aktifkan 'MASQUERADE' di firewall zona 'tepercaya'.

firewall-cmd --permanent --zone=trusted --add-masquerade

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

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

Dan muat ulang firewalld.

firewall-cmd --reload

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

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

Periksa menggunakan perintah di bawah ini.

netstat -plntu
systemctl status [email protected]

Server OpenVPN aktif dan berjalan pada port protokol udp '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 139.xx.xx.xx 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-retry infinite
compress lzo
nobind persist-key persist-tun mute-replay-warnings verb 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/*

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

Langkah 7 - Menguji 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

Unduh 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