GNU/Linux >> Belajar Linux >  >> Panels >> OpenVPN

Siapkan Server OpenVPN di CentOS 8

Dalam panduan ini, kita akan mempelajari 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 terpasang, 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 klien serta sertifikat Otoritas Sertifikat master dan kunci pribadi untuk menandatangani server OpenVPN dan sertifikat klien. 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 dipasang di bawah /usr/share/easy-rsa direktori.

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

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

Setelah skrip tersedia, navigasikan ke direktori dan inisialisasi PKI.

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

Buat 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 handshake TLS dengan klien penghubung.

./easyrsa gen-dh

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

Buat 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 penggunaan frasa sandi.

Buat kunci Kode Otentikasi Pesan Berbasis Hash (HMAC)

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 .

Salin Sertifikat dan Kunci Server ke Direktori Server

Selanjutnya, salin 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/

Buat Sertifikat dan Kunci Klien OpenVPN

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

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

di mana koromicha adalah nama klien yang sertifikat dan kuncinya dibuat. Selalu gunakan nama umum yang unik untuk setiap klien yang Anda buat sertifikat dan kuncinya.

Untuk menghasilkan untuk klien kedua,

./easyrsa build-client-full johndoe nopass

Salin Sertifikat dan Kunci Klien ke Direktori Klien

Buat direktori untuk setiap klien di direktori klien OpenVPN

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

Selanjutnya, salin semua sertifikat/kunci yang dibuat klien dan sertifikat CA ke direktori konfigurasi klien OpenVPN. Anda dapat

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/

Konfigurasi Server OpenVPN pada CentOS 8

OpenVPN hadir dengan contoh file konfigurasi di dalam direktori dokumentasinya. Salin 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 alamat IP tetap/statis ke klien OpenVPN Anda? Ikuti panduan di bawah ini;

Tetapkan Alamat IP Statis untuk Klien 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 klien dirutekan melalui alamat IP server (membantu menutupi alamat IP klien), 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 layanan 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 antarmuka yang melaluinya paket akan dikirim.

Untuk menemukan antarmuka tempat 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 antarmuka dan subnet yang ditentukan mungkin berbeda untuk kasus Anda. Ganti sesuai kebutuhan.

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

Muat ulang firewalld agar perubahan diterapkan.

firewall-cmd --reload

Mulai dan atur OpenVPN berjalan pada boot sistem.

systemctl enable --now [email protected]

Ketika layanan OpenVPN berjalan, itu akan membuat antarmuka 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 klien OpenVPN;

Instal dan Konfigurasikan Klien 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 Klien VPN strongSwan di Ubuntu 18.04/CentOS 8

Hubungkan ke Cisco VPN Menggunakan file PCF di Ubuntu

OpenVPN
  1. Pengaturan server awal dengan Ubuntu 14.04

  2. Setup Server RSyslog Terpusat Pada CentOS 7

  3. Bagaimana cara Setup Server NTP di CentOS?

  1. Cara mengatur server SFTP di CentOS

  2. Siapkan Server SysLog di CentOS 6 / RHEL 6

  3. Cara Setup SysLog Server di CentOS 7 / RHEL 7

  1. Siapkan Server OpenVPN di Rocky Linux 8

  2. Siapkan Server VPN IPSec dengan Libreswan di CentOS 8

  3. Instal dan Siapkan Server OpenVPN di Ubuntu 20.04