VPN "Virtual Private Network" adalah jaringan pribadi yang menyembunyikan identitas pengguna, asal, dan data menggunakan enkripsi. Penggunaan utamanya adalah privasi data pengguna dan koneksi aman ke internet. Karena menyembunyikan data, Anda dapat mengakses data yang biasanya diblokir oleh pembatasan geografis.
OpenVPN adalah perangkat lunak VPN sumber terbuka yang merupakan perangkat lunak dan protokol itu sendiri. Ini sangat dihargai karena terus melewati firewall.
Tutorial ini akan menunjukkan kepada Anda langkah demi langkah cara menginstal dan menyiapkan server OpenVPN dan menghubungkannya ke klien OpenVPN. Kami akan menggunakan server CentOS 8 untuk instalasi, prosedur yang sama akan bekerja pada Rocky Linux 8 dan AlmaLinux 8 juga.
Prasyarat
Akses terminal
Akun pengguna dengan hak istimewa sudo.
Catatan: Perintah dalam tutorial ini dilakukan pada CentOS 8. Semua metode dalam tutorial ini juga berlaku untuk CentOS 7.
Perbarui &Tingkatkan Sistem
Pastikan sistem Anda mutakhir dengan memperbarui dan meningkatkan sistem Anda dengan menjalankan perintah berikut.
sudo dnf update && sudo dnf upgrade
Nonaktifkan SELinux
Selanjutnya, Anda perlu menonaktifkan SELinux karena bertentangan dengan OpenVPN dan mencegahnya diluncurkan.
Untuk menonaktifkan SELinux, buka file konfigurasi SELinux menggunakan perintah berikut.
sudo nano /etc/selinux/config
Setelah file dibuka dengan editor nano. Cari SELinux dan ubah nilainya menjadi nonaktif atau cukup ganti dengan baris kode berikut.
SELINUX=disabled
Tekan Ctrl+O lalu Ctrl+X untuk menyimpan dan keluar dari file.
Aktifkan Penerusan IP
Sekarang, Anda perlu mengaktifkan penerusan IP agar paket yang masuk dapat diteruskan ke jaringan yang berbeda.
Untuk mengaktifkan penerusan IP, buka file konfigurasi sysctl dengan editor nano.
sudo nano /etc/sysctl.conf
Tambahkan kode berikut ke file.
net.ipv4.ip_forward = 1
Tekan Ctrl+O lalu Ctrl+X.
Instal Server OpenVPN
Pastikan untuk menginstal paket epel-release.
sudo dnf install epel-release -y
Sekarang, Anda dapat menginstal OpenVPN menggunakan perintah berikut.
sudo dnf install openvpn -y
Sekarang OpenVPN sudah terinstal. Arahkan ke folder instalasi dan unduh easy-rsa. Easy-RSA membangun dan mengelola otoritas sertifikat (CA).
cd /etc/openvpn
sudo wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.6/EasyRSA-unix-v3.0.6.tgz
Ekstrak file zip yang diunduh.
sudo tar -xvzf EasyRSA-unix-v3.0.6.tgz
Dan pindahkan file EasyRSA ke foldernya.
sudo mv EasyRSA-v3.0.6 easy-rsa
Konfigurasi Easy-RSA
Selanjutnya, kita perlu menambahkan dan membangun sertifikat SSL. Untuk melakukannya, pertama, navigasikan ke direktori easy-rsa.
cd /etc/openvpn/easy-rsa
Untuk membuka file vars di editor nano, jalankan perintah berikut.
sudo nano vars
Sekarang salin dan tempel baris kode berikut ke dalam file vars.
set_var EASYRSA "$PWD" set_var EASYRSA_PKI "$EASYRSA/pki" set_var EASYRSA_DN "cn_only" set_var EASYRSA_REQ_COUNTRY "USA" set_var EASYRSA_REQ_PROVINCE "Newyork" set_var EASYRSA_REQ_CITY "Newyork" set_var EASYRSA_REQ_ORG "osradar CERTIFICATE AUTHORITY" set_var EASYRSA_REQ_EMAIL "" set_var EASYRSA_REQ_OU "osradar 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 "osradar CERTIFICATE AUTHORITY" set_var EASYRSA_EXT_DIR "$EASYRSA/x509-types" set_var EASYRSA_SSL_CONF "$EASYRSA/openssl-easyrsa.cnf" set_var EASYRSA_DIGEST "sha256"
Anda dapat mengubah nilai negara, kota, provinsi, dan email sesuai kebutuhan Anda.
Tekan Ctrl+O lalu Ctrl+X.
Sekarang, mulai direktori PKI dengan perintah berikut.
./easyrsa init-pki
Akhirnya, Anda dapat membuat sertifikat CA Anda.
sudo ./easyrsa build-ca
Buat File Sertifikat Server
Gunakan perintah berikut untuk mendapatkan pasangan kunci dan permintaan sertifikat Anda.
sudo ./easyrsa gen-req vitux-server nopass
Menandatangani Kunci Server Dengan CA
Untuk menandatangani kunci server Anda dengan CA, jalankan perintah berikut.
sudo ./easyrsa sign-req server vitux-server
Kami membutuhkan kunci Diffie-Hellman untuk tujuan pertukaran kunci. Buat kunci dengan menjalankan perintah berikut.
sudo ./easyrsa gen-dh
Selanjutnya, salin semua file ini ke /etc/openvpn/server/ direktori.
cp pki/ca.crt /etc/openvpn/server/ cp pki/dh.pem /etc/openvpn/server/ cp pki/private/vitux-server.key /etc/openvpn/server/ cp pki/issued/vitux-server.crt /etc/openvpn/server/
Buat Kunci Klien dan Sertifikat
Anda bisa mendapatkan kunci klien dengan menjalankan perintah berikut.
sudo ./easyrsa gen-req client nopass
Selanjutnya, tanda tangani kunci klien Anda dengan sertifikat CA yang dihasilkan.
sudo ./easyrsa sign-req client client
Salin file ini ke /etc/openvpn/client/ direktori
cp pki/ca.crt /etc/openvpn/client/ cp pki/issued/client.crt /etc/openvpn/client/ cp pki/private/client.key /etc/openvpn/client/
Konfigurasi Server OpenVPN
Buat dan buka file konfigurasi baru di direktori klien dengan perintah berikut.
sudo nano /etc/openvpn/server/server.conf
Kemudian tambahkan baris kode berikut ke dalam file.
port 1194 proto udp dev tun ca /etc/openvpn/server/ca.crt cert /etc/openvpn/server/vitux-server.crt key /etc/openvpn/server/vitux-server.key dh /etc/openvpn/server/dh.pem server 10.8.0.0 255.255.255.0 push "redirect-gateway def1" push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220" duplicate-cn 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 keepalive 20 60 persist-key persist-tun compress lz4 daemon user nobody group nobody log-append /var/log/openvpn.log verb 3
Tekan Ctrl+O dan Ctrl+X.
Mulai dan Aktifkan Layanan OpenVPN
OpenVPN Anda siap diluncurkan. Mulai dan aktifkan server menggunakan perintah berikut.
sudo systemctl start [email protected] sudo systemctl enable [email protected]
Anda dapat melihat dan memverifikasi status aktif dengan perintah berikut.
systemctl status [email protected]
Antarmuka jaringan baru akan dibuat pada awal yang sukses dari server OpenVPN. Jalankan perintah berikut untuk melihat detailnya.
ifconfig
Buat File Konfigurasi Klien
Langkah selanjutnya adalah menghubungkan klien ke server OpenVPN. Kami membutuhkan file konfigurasi klien untuk itu. Untuk menghasilkan file konfigurasi klien, jalankan perintah berikut.
sudo nano /etc/openvpn/client/client.ovpn
Sekarang, salin dan tempel kode berikut ke dalam file.
client dev tun proto udp remote vpn-server-ip 1194 ca ca.crt cert client.crt key client.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 lz4 nobind persist-key persist-tun mute-replay-warnings verb 3
Tekan Ctrl+O untuk menyimpan perubahan dan tekan Ctrl+X untuk keluar dari editor.
Konfigurasi Perutean
Setel pengaturan layanan OpenVPN dengan perintah berikut untuk mengizinkannya melalui firewall.
firewall-cmd --permanent --add-service=openvpn firewall-cmd --permanent --zone=trusted --add-service=openvpn firewall-cmd --permanent --zone=trusted --add-interface=tun0
firewall-cmd --add-masquerade firewall-cmd --permanent --add-masquerade
Setel perutean untuk meneruskan lalu lintas masuk dari VPN ke jaringan lokal.
routecnf=$(ip route get 8.8.8.8 | awk 'NR==1 {print $(NF-2)}') firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o $routecnf -j MASQUERADE
Muat ulang agar perubahan menjadi efektif.
firewall-cmd --reload
Instal dan Gunakan OpenVPN di Mesin Klien
Anda harus menginstal epel-release dan OpenVPN seperti yang Anda lakukan di sisi server.
dnf install epel-release -y dnf install openvpn -y
Sekarang salin file konfigurasi klien dari server menggunakan perintah yang diberikan di bawah ini.
sudo scp -r [email protected]:/etc/openvpn/client .
Buka direktori klien dan sambungkan ke server OpenVPN menggunakan perintah berikut.
cd client openvpn --config client.ovpn
Jalankan ifconfig untuk melihat alamat IP yang ditetapkan.
ifconfig tun0