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-pkiSetelah 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-caIni 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.crtSertifikat 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-dhParameter 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 nopassMasukkan 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.keyBuat Sertifikat Pencabutan OpenVPN
Untuk membatalkan sertifikat yang ditandatangani sebelumnya, Anda perlu membuat sertifikat pencabutan. Jalankan skrip di dalam direktori Easy-RSA;
./easyrsa gen-crlSertifikat 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