Siapkan Server OpenVPN di CentOS 8

Dalam panduan ini, kita akan belajar cara menginstal dan mengatur Server OpenVPN dengan mudah di CentOS 8. OpenVPN adalah perangkat lunak VPN sumber terbuka yang kuat dan sangat fleksibel yang menggunakan semua fitur enkripsi, otentikasi, dan sertifikasi dari perpustakaan OpenSSL untuk terowongan jaringan IP dengan aman melalui satu port UDP atau TCP. Ini memfasilitasi perluasan jaringan pribadi di jaringan publik sambil menjaga keamanan yang akan dicapai dalam jaringan pribadi.

Siapkan Server OpenVPN di CentOS 8

Instal Repositori EPEL

Paket OpenVPN terbaru disediakan oleh repositori EPEL di CentOS 8 dan turunan serupa lainnya. EPEL dapat diinstal pada CentOS 8 dengan menjalankan perintah di bawah ini;

dnf install epel-release -y

Instal OpenVPN di CentOS 8

Setelah repo EPEL tersedia, Anda sekarang dapat menginstal paket OpenVPN pada CentOS 8 dengan menjalankan perintah di bawah ini;

dnf install openvpn

Instal Easy-RSA CA Utility di CentOS 8

Paket Easy-RSA adalah utilitas CA berbasis shell yang digunakan untuk menghasilkan pasangan kunci SSL yang digunakan untuk mengamankan koneksi VPN.

dnf install easy-rsa

Buat Infrastruktur Kunci Publik OpenVPN

Langkah pertama dalam menyiapkan server OpenVPN adalah membuat PKI yang terdiri dari kunci publik dan pribadi untuk server OpenVPN dan menghubungkan client dan sertifikat Otoritas Sertifikat master dan kunci pribadi untuk menandatangani server OpenVPN dan sertifikat client. Jika memungkinkan, Anda harus membuat PKI di server terpisah yang menjalankan OpenVPN untuk tujuan keamanan.

Inisialisasi PKI

Easy-RSA digunakan untuk manajemen PKI. Skrip Easy-RSA diinstal di bawah /usr/share/easy-rsadirektori.

Untuk memastikan bahwa Easy-RSA setiap konfigurasi yang dibuat tidak ditimpa jika terjadi peningkatan, copy skrip ke direktori lain, sebaiknya di bawah /etcdirektori.

mkdir /etc/easy-rsa
cp -air /usr/share/easy-rsa/3/* /etc/easy-rsa/

Setelah skrip berada di tempatnya, navigasikan ke direktori dan inisialisasi PKI.

cd /etc/easy-rsa/
./easyrsa init-pki

Hasilkan Sertifikat dan Kunci Otoritas Sertifikat (CA)

Selanjutnya, buat sertifikat CA dan kunci yang akan digunakan untuk menandatangani sertifikat dengan menjalankan perintah di bawah ini dalam direktori Easy-RSA di atas.

./easyrsa build-ca

Ini akan meminta Anda untuk frasa sandi kunci CA dan nama umum server.

Using SSL: openssl OpenSSL 1.1.1c FIPS 28 May 2019 Enter New CA Key Passphrase: ENTER PASSWORD Re-Enter New CA Key Passphrase: RE-ENTER PASSWORD Generating RSA private key, 2048 bit long modulus (2 primes)...................................................................+++++.+++++ e is 65537 (0x010001) Can't load /etc/easy-rsa/pki/.rnd into RNG 140160794502976:error:2406F079:random number generator:RAND_load_file:Cannot open file:crypto/rand/randfile.c:98:Filename=/etc/easy-rsa/pki/.rnd You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Common Name (eg: your user, host, or server name) [Easy-RSA CA]: Kifarunix-CA CA creation complete and you may now import and sign cert requests. Your new CA certificate file for publishing is at: /etc/easy-rsa/pki/ca.crt

Sertifikat CA disimpan di  /etc/easy-rsa/pki/ca.crt.

Hasilkan Parameter Diffie Hellman

Saat berada dalam direktori Easy-RSA yang sama seperti di atas, jalankan perintah di bawah ini untuk menghasilkan file kunci Diffie-Hellman yang dapat digunakan untuk pertukaran kunci selama jabat tangan TLS dengan client penghubung.

./easyrsa gen-dh

Perintah akan membutuhkan waktu untuk diselesaikan. Ini kemudian menyimpan parameter DH pada/etc/easy-rsa/pki/dh.pem mengajukan.

Hasilkan Sertifikat dan Kunci Server OpenVPN

Untuk menghasilkan sertifikat dan kunci pribadi untuk server OpenVPN, jalankan perintah di bawah ini;

cd /etc/easy-rsa
./easyrsa build-server-full server nopass

Saat perintah berjalan, Anda akan diminta untuk memasukkan frasa sandi kunci CA buat di atas.

nopass menonaktifkan useran frasa sandi.

Hasilkan kunci Kode Otentikasi Pesan (HMAC) berbasis Hash

Untuk menghasilkan kunci otentikasi pra-berbagi TLS/SSL yang akan digunakan untuk menambahkan tanda tangan HMAC tambahan ke semua paket handshake SSL/TLS, untuk menghindari serangan DoS dan banjir port UDP, jalankan perintah di bawah ini;

openvpn --genkey --secret /etc/easy-rsa/pki/ta.key

Buat Sertifikat Pencabutan

Untuk membatalkan sertifikat yang ditandatangani sebelumnya, Anda perlu membuat sertifikat pencabutan.

./easyrsa gen-crl

Sertifikat Pencabutan disimpan sebagai /etc/easy-rsa/pki/crl.pem.

Copy Sertifikat dan Kunci Server ke Direktori Server

Selanjutnya, copy semua sertifikat/kunci yang dihasilkan ke direktori konfigurasi server OpenVPN.

cp -rp /etc/easy-rsa/pki/{ca.crt,dh.pem,ta.key,crl.pem,issued,private} /etc/openvpn/server/

Hasilkan Sertifikat dan Kunci Client OpenVPN

Untuk menghasilkan sertifikat client OpenVPN dan kunci pribadi, jalankan perintah di bawah ini;

cd /etc/easy-rsa
./easyrsa build-client-full koromicha nopass

di mana koromichaadalah nama client yang sertifikat dan kuncinya dibuat. Selalu gunakan nama umum yang unik untuk setiap client yang Anda buat sertifikat dan kuncinya.

Untuk menghasilkan untuk client kedua,

./easyrsa build-client-full johndoe nopass

Copy Sertifikat dan Kunci Client ke Direktori Client

Buat direktori untuk setiap client di direktori client OpenVPN

mkdir /etc/openvpn/client/{koromicha,johndoe}

Selanjutnya, copy semua sertifikat/kunci yang dibuat client dan sertifikat CA ke direktori konfigurasi client OpenVPN. Kamu bisa

cp -rp /etc/easy-rsa/pki/{ca.crt,issued/koromicha.crt,private/koromicha.key} /etc/openvpn/client/koromicha
cp -rp /etc/easy-rsa/pki/{ca.crt,issued/johndoe.crt,private/johndoe.key} /etc/openvpn/client/johndoe/

Konfigurasikan Server OpenVPN pada CentOS 8

OpenVPN hadir dengan contoh file konfigurasi di dalam direktori dokumentasinya. Copy file ke /etc/openvpn/server/dan modifikasi sesuai kebutuhan Anda.

cp /usr/share/doc/openvpn/sample/sample-config-files/server.conf /etc/openvpn/server/

Buka konfigurasi untuk modifikasi.

vim /etc/openvpn/server/server.conf

File sangat dikomentari. Baca komentar untuk setiap opsi konfigurasi.

Dalam bentuk paling dasar, di bawah ini adalah opsi konfigurasi kami, tanpa komentar.

port 1194 proto udp4 dev tun ca ca.crt cert issued/server.crt key private/server.key # This file should be kept secret dh dh.pem topology subnet server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 192.168.10.3" client-to-client keepalive 10 120 tls-auth ta.key 0 # This file is secret cipher AES-256-CBC comp-lzo user nobody group nobody persist-key persist-tun status /var/log/openvpn/openvpn-status.log log-append /var/log/openvpn/openvpn.log verb 3 explicit-exit-notify 1 auth SHA512

Simpan dan keluar dari konfigurasi setelah selesai memodifikasi.

Ingin menetapkan alama
t IP tetap/statis ke client OpenVPN Anda? Ikuti panduan di bawah ini;

Tetapkan Alamat IP Statis untuk Client OpenVPN

Buat direktori log;

mkdir /var/log/openvpn/

Jelajahi konfigurasi dan lakukan penyetelan lebih lanjut agar sesuai dengan kebutuhan Anda.

Konfigurasi Perutean Server OpenVPN

Untuk memastikan bahwa lalu lintas dari client dirutekan melalui alamat IP server (membantu menutupi alamat IP client), Anda perlu mengaktifkan penerusan IP di server OpenVPN;

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

Jalankan perintah di bawah ini untuk melakukan perubahan tanpa me-reboot server.

sysctl --system

Izinkan port service OpenVPN melalui firewall

firewall-cmd --add-port=1194/udp --permanent

Aktifkan Penyamaran IP

firewall-cmd --add-masquerade --permanent

Teruskan lalu lintas yang diterima pada subnet OpenVPN yang ditentukan, misalnya, 10.8.0.0/24 dalam kasus kami, ke interface yang melaluinya paket akan dikirim.

Untuk menemukan interface melalui mana paket dikirim dengan menjalankan perintah di bawah ini;

ip route get 8.8.8.8
8.8.8.8 via 192.168.43.1 dev enp0s3 src 192.168.43.73 uid 0

Nama interface dan subnet yang ditentukan mungkin berbeda untuk kasus Anda. Ganti mereka sesuai.

firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o enp0s3 -j MASQUERADE

Reload firewalld agar perubahan diterapkan.

firewall-cmd --reload

Mulai dan atur OpenVPN berjalan pada boot sistem.

systemctl enable --now [email protected]

Ketika service OpenVPN berjalan, itu akan membuat interface tunneling, tun0;

ip add s
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100 link/none inet 10.8.0.1/24 brd 10.8.0.255 scope global tun0 valid_lft forever preferred_lft forever inet6 fe80::2ed5:8f74:c456:96b7/64 scope link stable-privacy valid_lft forever preferred_lft forever

Memeriksa log;

tail /var/log/openvpn/openvpn.log
/sbin/ip addr add dev tun0 10.8.0.1/24 broadcast 10.8.0.255 Socket Buffers: R=[212992->212992] S=[212992->212992] UDPv4 link local (bound): [AF_INET][undef]:1194 UDPv4 link remote: [AF_UNSPEC] GID set to nobody UID set to nobody MULTI: multi_init called, r=256 v=256 IFCONFIG POOL: base=10.8.0.2 size=252, ipv6=0 IFCONFIG POOL LIST Initialization Sequence Completed

Server OpenVPN Anda sekarang aktif dan berjalan. Itu membawa kita ke akhir panduan kami tentang cara menginstal dan mengatur Server OpenVPN di CentOS 8.

Anda sekarang dapat melanjutkan untuk mengonfigurasi client OpenVPN;

Instal dan Konfigurasikan Client OpenVPN di CentOS 8/Ubuntu 18.04

Konfigurasikan Otentikasi berbasis OpenVPN LDAP.

Konfigurasikan Otentikasi Berbasis OpenVPN LDAP

Tutorial Terkait

Konfigurasikan IPSEC VPN menggunakan StrongSwan di Ubuntu 18.04

Konfigurasikan Client VPN strongSwan di Ubuntu 18.04/CentOS 8

Hubungkan ke Cisco VPN Menggunakan file PCF di Ubuntu