Cara Install OpenVPN Server dan Client with 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, berbasis sertifikat, kunci yang dibagikan sebelumnya, dan otentikasi nama pengguna / kata sandi.

Persyaratan

  • CentOS 7.6
  • Akses ROOT

Daftar isi

  • Install OpenVPN dan Easy-RSA
  • Konfigurasi Easy-RSA 3 Vars
  • Membuat OpenVPN Keys
  • Konfigurasi OpenVPN Server
  • Konfigurasi Firewall dan Enable Port Forwarding
  • Client Setup
  • Testing

Step 1 – Install OpenVPN dan Easy-RSA

Di tutorial ini, saya menggunakan Centos 7.5, OpenVPN 2.4 dengan easy-rsa 3. Sebelum menginstal OpenVPN dan paket easy-rsa, pastikan repositori ‘epel’ diinstal pada sistem. Jika Anda belum mempunyainya, instal repositori epel menggunakan perintah yum di bawah ini.

yum install epel-release -y

Selanjutnya, install OpenVPN 2.4 with easy-rsa 3 menggunakan perintah:

yum install openvpn easy-rsa -y

Periksa versi openvpn dan easy-rsa yang telah diinstall menggunakan perintah:

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

Step 2 – Konfigurasi Easy-RSA 3

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

Buka direktori ‘/etc/openvpn/’ dan copy file ‘easy-rsa’ script

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

Dan sekarang buka direktori ‘easy-rsa/3/’ dan buat file “vars baru menggunakan vim.

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

Paste konfigurasi vars easy-rsa 3 dibawah 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         "Beruangutan CERTIFICATE AUTHORITY"
set_var EASYRSA_REQ_EMAIL       "openvpn@beruangutan.com"
set_var EASYRSA_REQ_OU          "Beruangutan 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      "Beruangutan 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"

Save lalu exit.

Sekarang buat agar file ‘vars’ dapat dieksekusi dengan mengubah izin file.

chmod +x vars

Melihat direktori Easy-RSA 3

[root@Beruangutan 3]# ls -lah
total 60K
drwxr-xr-x 3 root root 4.0K Dec 20 10:20 .
drwxr-xr-x 3 root root 4.0K Dec 20 10:20 ..
-rwxr-xr-x 1 root root 36K  Dec 20 10:20 easyrsa
-rw-r--r-- 1 root root 4.0K Dec 20 10:20 openssl-1.0.cnf
-rwxr-xr-x 1 root root 833  Dec 20 10:20 vars
drwxr-xr-x 2 root root 4.0K Dec 20 10:20 x509-types
[root@Beruangutan 3]#

Step 3 – Membuat OpenVPN Key

Dilangkah ini, saya akan membuat CA key, Server and Client keys, DH and CRL PEM file.

Initialization dan membuat CA

Masuk ke direktori OpenVPN

cd /etc/openvpn/easy-rsa/3/
./easyrsa init-pki
./easyrsa build-ca

Membuat Server Key

Selanjutnya, saya akan membuat Server key dan saya memberi nama “beruangutan-server” dengan perintah.

./easyrsa gen-req beruangutan-server nopass

./easyrsa sign-req server beruangutan-server

openssl verify -CAfile pki/ca.crt pki/issued/beruangutan-server.crt

Membuat Client Key

Selanjutnya, saya akan membuat Client key dan saya memberi nama ”
client01 ” dengan perintah.

./easyrsa gen-req client01 nopass

./easyrsa sign-req client client01

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

Membuat Diffie-Hellman Key

Selanjutnya saya akan membuat Diffie-Hellman key menggunakan perintah.

./easyrsa gen-dh

Salin Certificates Files

Setelah semua sertifikat telah dibuat, sekarang salin file sertifikat dan file PEM.

Salin Server Key dan Certificate.

cp pki/ca.crt /etc/openvpn/server/
cp pki/issued/beruangutan-server.crt /etc/openvpn/server/
cp pki/private/beruangutan-server.key /etc/openvpn/server/

Salin client01 Key dan Certificate

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

Salin DH dan CRL Key.

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

Step 4 – Konfigurasi OpenVPN

Dilangkah ini saya akan membuat baru “server.conf”.

Masuk ke direktori OpenVPN dan membuat “server.conf” menggunakan vim.

cd /etc/openvpn/
vim server.conf

Paste konfigurasi OpenVPN server dibawah ini.

# 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/beruangutan.crt
key /etc/openvpn/server/beruangutan-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

Save dan exit.

Step 5 – Enable Port-Forwarding dan Konfigurasi Routing Firewalld

Di langkah ini, saya akan melakukan enable Port-forwarding kernel module dan konfigurasi routing ‘Firewalld’ for OpenVPN.

[root@Beruangutan ~] #echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
[root@Beruangutan ~] sysctl -p

[root@Beruangutan ~] firewall-cmd --permanent --add-service=openvpn

[root@Beruangutan ~] firewall-cmd --permanent --zone=trusted --add-interface=tun0

[root@Beruangutan ~] firewall-cmd --permanent --zone=trusted --add-masquerade

[root@Beruangutan ~] 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

[root@Beruangutan ~] firewall-cmd --reload

[root@Beruangutan ~] systemctl start openvpn@server

[root@Beruangutan ~] systemctl enable openvpn@server

[root@Beruangutan ~] netstat -plntu

[root@Beruangutan ~] systemctl status openvpn@server

Step 6 – OpenVPN Client Setup

Masuk direktori ‘/etc/openvpn/client’ dan buat baru file konfigurasi klien openvpn ‘client01.ovpn’ menggunakan vim.

cd /etc/openvpn/client
vim client01.ovpn

Paste konfigurasi OpenVPN client dibawah ini.

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

Save dan exit.

Sekarang kompres direktori ‘/ etc / openvpn / client’ ke file ‘zip’ atau ‘tar.gz’ dan unduh file terkompresi menggunakan scp dari komputer Anda.

Kompres direktori ‘/ etc / openvpn / client’ ke file ‘client01.tar.gz’ menggunakan perintah.

cd /etc/openvpn/

tar -czvf client01.tar.gz client/*

scp root@139.xx.xx.xx:/etc/openvpn/client01.tar.gz .

Step 7 – Testing OpenVPN

Menggunakan Windows
Download openvpn client

Demikianlah tutorial Cara Install OpenVPN Server dan Client with Easy-RSA 3 di CentOS 7. Semoga artikel ini dapat membantu Anda.
Terimakasih.

Leave a Reply

Your email address will not be published. Required fields are marked *