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

Instal dan Siapkan Server OpenVPN di Ubuntu 20.04

Dalam panduan ini, kita akan belajar cara menginstal dan mengatur Server OpenVPN di Ubuntu 20.04. OpenVPN adalah perangkat lunak VPN sumber terbuka yang tangguh dan sangat fleksibel yang menggunakan semua fitur enkripsi, autentikasi, dan sertifikasi dari pustaka OpenSSL untuk menyalurkan jaringan IP dengan aman melalui satu port UDP atau TCP.

Ini memfasilitasi perluasan jaringan pribadi di seluruh jaringan publik, mengakses situs jarak jauh, membuat koneksi point-to-point yang aman, sambil mempertahankan keamanan yang akan dicapai dalam jaringan pribadi.

Instal dan Siapkan Server OpenVPN di Ubuntu 20.04

Jalankan pembaruan sistem

apt updateapt upgrade

Instal OpenVPN di Ubuntu 20.04

Paket OpenVPN tersedia di repo default Ubuntu 20.04. Jadi penginstalannya semudah menjalankan perintah di bawah ini;

apt install openvpn

Instal Easy-RSA CA Utility di Ubuntu 20.04

Paket Easy-RSA menyediakan utilitas untuk menghasilkan pasangan kunci SSL yang digunakan untuk mengamankan koneksi VPN.

apt install easy-rsa

Buat Infrastruktur Kunci Publik OpenVPN

Setelah Anda menginstal easy-rsa, Anda perlu menginisialisasi OpenVPN PKI. PKI terdiri dari:

  • kunci publik dan kunci pribadi untuk server dan setiap klien
  • sertifikat dan kunci Certificate Authority (CA) master yang digunakan untuk menandatangani setiap sertifikat server dan klien.

Sebelum Anda dapat melanjutkan, salin direktori konfigurasi easy-rsa ke lokasi lain untuk memastikan bahwa pemutakhiran paket OpenVPN di masa mendatang tidak akan menimpa modifikasi Anda.

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

Selanjutnya, inisialisasi PKI.

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

Setelah PKI diinisialisasi, /etc/easy-rsa/pki dibuat.

Buat Sertifikat dan Kunci Otoritas Sertifikat (CA)

Selanjutnya, buat sertifikat CA dan kunci untuk menandatangani server OpenVPN dan sertifikat klien.

cd /etc/easy-rsa/./easyrsa build-ca

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

Menggunakan SSL:openssl OpenSSL 1.1.1f 31 Mar 2020Masukkan Frasa Sandi Kunci CA Baru:MASUKKAN SANDI Masukkan Kembali Frasa Sandi Kunci CA Baru:MASUKKAN ULANG SANDI Menghasilkan kunci pribadi RSA, modulus panjang 2048 bit (2 bilangan prima)...............+++++............. .+++++e adalah 65537 (0x010001) Tidak dapat memuat /etc/easy-rsa/pki/.rnd ke RNG139840045897024:error:2406F079:generator nomor acak:RAND_load_file:Tidak dapat membuka file:../crypto/rand /randfile.c:98:Filename=/etc/easy-rsa/pki/.rndAnda akan diminta untuk memasukkan informasi yang akan dimasukkan ke dalam permintaan sertifikat Anda. Yang akan Anda masukkan adalah apa yang disebut Distinguished Name atau a DN.Ada beberapa bidang tetapi Anda dapat mengosongkannyaUntuk beberapa bidang akan ada nilai default,Jika Anda memasukkan '.', bidang tersebut akan dikosongkan.-----Nama Umum (mis:pengguna Anda , host, atau nama server) [Easy-RSA CA]:Kifarunix-demo CA Pembuatan CA selesai dan Anda sekarang dapat mengimpor dan menandatangani permintaan sertifikat. File sertifikat CA baru Anda untuk penerbitan ada di:/etc/easy-rsa/pki/ca.crt

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

Hasilkan Parameter Diffie Hellman

Hasilkan kunci Diffie-Hellman yang digunakan untuk pertukaran kunci selama jabat tangan TLS antara server OpenVPN dan klien penghubung. Perintah ini telah dijalankan dalam direktori Easy-RSA;

./easyrsa gen-dh

Parameter DH ukuran 2048 dibuat di /etc/easy-rsa/pki/dh.pem .

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

Masukkan frasa sandi kunci CA buat di atas untuk menghasilkan sertifikat dan kunci.

nopass menonaktifkan penggunaan frasa sandi.

Buat kunci Kode Otentikasi Pesan Berbasis Hash (HMAC)

Kunci otentikasi pra-berbagi TLS/SSL digunakan sebagai tanda tangan HMAC tambahan pada semua paket handshake SSL/TLS untuk menghindari serangan DoS dan banjir port UDP. Ini dapat dibuat menggunakan perintah;

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

Buat Sertifikat Pencabutan OpenVPN

Untuk membatalkan sertifikat yang ditandatangani sebelumnya, Anda perlu membuat sertifikat pencabutan. Jalankan skrip di dalam direktori Easy-RSA;

./easyrsa gen-crl

Sertifikat pencabutan dibuat dan disimpan di /etc/easy-rsa/pki/crl.pem .

Salin Sertifikat dan Kunci Server ke Direktori Konfigurasi Server

Salin semua sertifikat/kunci server 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

Sertifikat klien OpenVPN dan kunci pribadi dapat dibuat sebagai berikut

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 sertifikat dan kuncinya Anda buat.

Untuk menghasilkan untuk klien kedua,

./easyrsa build-client-full janedoe nopass

Anda dapat melihat cara menggunakan easyrsa perintah dengan ./easyrsa --help .

Salin Sertifikat dan Kunci Klien ke Direktori Klien

Buat direktori klien OpenVPN. Misalnya, kami telah membuat sertifikat dan file kunci untuk dua klien, koromicha dan janedoe, oleh karena itu kami membuat direktori sebagai;

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

Setelah itu, salin sertifikat/kunci yang dibuat klien dan sertifikat CA server 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/janedoe.crt,private/janedoe.key} /etc/openvpn/client/janedoe/

Konfigurasi Server OpenVPN di Ubuntu 20.04

Langkah selanjutnya adalah mengkonfigurasi server OpenVPN. Salin contoh konfigurasi server OpenVPN ke /etc/openvpn/server direktori seperti yang ditunjukkan di bawah ini;

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

Ekstrak konfigurasi dan modifikasi sesuai kebutuhan Anda;

cd /etc/openvpn/server/gunzip server.conf.gz
vim /etc/openvpn/server/server.conf

Beginilah tampilan konfigurasi sampel kami tanpa komentar. Konfigurasi sangat dikomentari untuk membantu Anda memahami berbagai penggunaan opsi.

port 1194
proto udp
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 /var/log/openvpn/ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 192.168.2.11"
client-to-client
keepalive 10 120
tls-auth ta.key 0 # This file is secret
cipher AES-256-CBC
comp-lzo
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 mengedit.

Konfigurasikan Penerusan IP OpenVPN

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

Batalkan komentar pada baris, net.ipv4.ip_forward=1 , di /etc/sysctl.conf untuk mengaktifkan penerusan paket untuk IPv4

sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf

Terapkan perubahan tanpa me-reboot server.

sysctl --system

Izinkan port layanan OpenVPN melalui firewall;

ufw allow 1194/udp

Konfigurasi Penyamaran IP di UFW

Temukan antarmuka default tempat paket Anda dikirim.

ip route get 8.8.8.8
8.8.8.8 melalui 10.0.2.2 dev enp0s3 src 10.0.2.15 uid 0

Selanjutnya, perbarui aturan UFW;

vim /etc/ufw/before.rules

Tambahkan baris yang disorot berikut tepat sebelum *filter pengaturan meja. Perhatikan antarmuka yang digunakan harus sesuai dengan nama antarmuka di atas.

...*nat:POSTROUTING MENERIMA [0:0]-A POSTROUTING -s 10.8.0.0/8 -o enp0s3 -j MASQUERADECOMMIT # Jangan hapus baris wajib ini, jika tidak akan terjadi error*filter...

Simpan dan keluar dari konfigurasi.

Aktifkan penerusan paket UFW;

sed -i 's/DEFAULT_FORWARD_POLICY="DROP"/DEFAULT_FORWARD_POLICY="ACCEPT"/' /etc/default/ufw

Muat ulang UFW;

ufw muat ulang

Menjalankan Server OpenVPN di Ubuntu 20.04

Mulai dan aktifkan server OpenVPN untuk dijalankan pada boot sistem;

systemctl enable --now [email protected]

Memeriksa status;

systemctl status [email protected]
[email protected] - OpenVPN service for server
     Loaded: loaded (/lib/systemd/system/[email protected]; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2020-05-01 16:07:33 UTC; 3s ago
       Docs: man:openvpn(8)
             https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
             https://community.openvpn.net/openvpn/wiki/HOWTO
   Main PID: 11980 (openvpn)
     Status: "Initialization Sequence Completed"
      Tasks: 1 (limit: 2281)
     Memory: 1.0M
     CGroup: /system.slice/system-openvpn\x2dserver.slice/[email protected]
             └─11980 /usr/sbin/openvpn --status /run/openvpn-server/status-server.log --status-version 2 --suppress-timestamps --config server.conf

May 01 16:07:33 vpn.kifarunix-demo.com systemd[1]: Starting OpenVPN service for server...
May 01 16:07:33 vpn.kifarunix-demo.com systemd[1]: Started OpenVPN service for server. 

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::1989:2bf2:1e7f:7415/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever 

Juga, pastikan untuk memeriksa log;

ekor /var/log/openvpn/openvpn.log
/sbin/ip link set dev tun0 up mtu 1500/sbin/ip addr add dev tun0 10.8.0.1/24 broadcast 10.8.0.255 Tidak dapat menentukan protokol IPv4/IPv6. Menggunakan AF_INETSocket Buffer:R=[212992->212992] S=[212992->212992]UDPv4 link local (bound):[AF_INET][undef]:1194UDPv4 link remote:[AF_UNSPEC]MULTI:multi_init disebut, r=256 v =256IFCONFIG POOL:base=10.8.0.2 size=252, ipv6=0IFCONFIG POOL LISTUrutan Inisialisasi Selesai 

Agung. Server OpenVPN sekarang sudah siap. Itu menandai akhir dari panduan kami tentang cara menginstal OpenVPN Server di Ubuntu 20.04.

Anda sekarang dapat mengonfigurasi klien Anda sesuai dengan itu.

Tutorial Terkait

Instal dan Konfigurasikan Klien OpenVPN di CentOS 8/Ubuntu 18.04

Konfigurasikan Otentikasi Berbasis OpenVPN LDAP

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. Cara Menginstal OpenVPN di Ubuntu 18.04

  3. Cara Menginstal dan Mengonfigurasi Server OpenVPN di Ubuntu 20.04

  1. Cara Memasang dan Mengatur Server Media Universal di Ubuntu 20.04

  2. Siapkan Server OpenVPN di Rocky Linux 8

  3. Siapkan Server OpenVPN di CentOS 8

  1. Cara mengatur server OpenVPN di Ubuntu 20.04

  2. Instal dan Konfigurasi OpenVPN Server FreeBSD 12

  3. Instal dan Siapkan Server OpenVPN di Fedora 29/CentOS 7