Manado, Indonesia. 95252
(+62) 823-9602-9583

Cara Mengatur Server OpenVPN di Ubuntu 16.04

Software Engineer | DevOps Engineer

Featured

Cara Mengatur Server OpenVPN di Ubuntu 16.04

Pengantar

Cara mengatur vpn gratis pada ubuntu 16.04 ? Ingin mengakses internet dengan aman dari smartphone atau laptop ketika terhubung ke jaringan yang tidak dipercaya seperti WiFi dari toko hotel atau kopi? Sebuah Virtual Private Network (VPN) memungkinkan Anda untuk melintasi jaringan yang tidak dipercaya secara pribadi dan aman sebagai jika Anda berada di jaringan pribadi. Lalu lintas muncul dari server VPN dan terus perjalanannya ke tujuan.

Ketika dikombinasikan dengan koneksi HTTPS, setup ini memungkinkan Anda untuk mengamankan login nirkabel dan transaksi anda . Anda dapat menghindari pembatasan koneksi, dan melindungi lokasi Anda dan lalu lintas di protokol HTTP yang tidak terenkripsi dari jaringan.

OpenVPN adalah open source solusi gratis vpn untuk akses VPN dengan fitur lengkap Socket Layer (SSL) yang mengakomodasi berbagai konfigurasi. Dalam tutorial ini, kita akan menyiapkan server OpenVPN pada VPS dan kemudian mengkonfigurasi akses ke sana. Tutorial ini akan menjaga instalasi dan langkah-langkah konfigurasi sesederhana mungkin untuk dapat membuat layanan gratis vpn.

Prasyarat

Untuk melengkapi tutorial mendapatkan layanan gratis vpn, Anda akan memerlukan akses ke Ubuntu 16.04 Server.

Anda akan perlu untuk mengkonfigurasi user root dengan sudohak istimewa sebelum Anda mulai panduan ini. Anda dapat mengikuti kami Ubuntu 16.04 awal panduan penyiapan server untuk mengatur pengguna dengan izin yang sesuai. Tutorial terkait juga akan mendirikan sebuah firewall .

Ketika Anda siap untuk memulai, login ke server Ubuntu Anda sebagai Anda sudopengguna dan terus di bawah ini.

Langkah 1: Instal OpenVPN

Untuk memulai, kita akan menginstal gratis VPN ke server. OpenVPN tersedia dalam repositori bawaan Ubuntu, sehingga kita dapat menggunakan aptuntuk instalasi. Kami juga akan menginstal paket easy-rsa, yang akan membantu anda mendirikan sebuah CA internal yang (otoritas sertifikat) untuk digunakan dengan VPN VPS anda.

Untuk memperbarui indeks paket server anda dan menginstal diperlukan jenis paket:

sudo apt-get update sudo apt-get install openvpn easy-rsa

Perangkat lunak yang dibutuhkan sekarang di server, siap untuk dikonfigurasi.

Langkah 2: Mengatur direktori CA

OpenVPN (gratis vpn) adalah TLS / SSL VPN. Ini berarti bahwa ia memanfaatkan sertifikat untuk mengenkripsi lalu lintas antara server dan klien. Dalam rangka untuk mengeluarkan sertifikat dunia, kita perlu mengatur sendiri otoritas sertifikat sederhana kami (CA).

Untuk memulai, kita dapat menyalin easy-rsadirektori template ke direktori rumah kami dengan make-cadirperintah:

make-cadir ~/openvpn-ca

Pindah ke direktori yang baru dibuat untuk mulai mengkonfigurasi CA:

cd ~/openvpn-ca

Langkah 3: Konfigurasi Variabel CA

Untuk mengkonfigurasi nilai-nilai CA kami akan menggunakan, kita perlu mengedit varsfile yang di dalam direktori. Buka file yang sekarang dalam editor teks Anda:

nano vars

Di dalam, Anda akan menemukan beberapa variabel yang dapat disesuaikan untuk menentukan bagaimana sertifikat Anda akan dibuat. Kita tidak perlu khawatir tentang hal ini.
di bagian bawah file, anda akan menemukan pengaturan default untuk sertifikat baru. Seharusnya terlihat seperti ini:

. . . export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="[email protected]"
export KEY_OU="MyOrganizationalUnit" . . .

Ganti nilai di atas seperti berikut :

. . . export KEY_COUNTRY="US"
export KEY_PROVINCE="NY"
export KEY_CITY="New York City"
export KEY_ORG="DigitalOcean"
export KEY_EMAIL="[email protected]"
export KEY_OU="Community"
 . . .

Sementara itu, kami juga akan mengedit KEY_NAMEnilai tepat di bawah bagian ini, yang populates bidang subjek. Untuk menjaga tetap sederhana. kita akan menyebutnya serverdalam panduan ini:

export KEY_NAME="Server"

Ketika Anda selesai, simpan dan tutup file tersebut.

Langkah 4: Membangun Otoritas Sertifikat

Sekarang, kita dapat menggunakan variabel kita mengatur dan easy-rsautilitas untuk membangun otoritas sertifikat VPS.

Pastikan Anda berada di direktori CA Anda, dan kemudian sumber tersebut varsfile yang baru saja diedit:
cd ~/openvpn-ca 
source vars

Anda akan melihat output seperti berikut jika itu konfigurasi benar:

Output NOTE: If you run ./clean-all, I will be doing a rm -rf on /home/sammy/openvpn-ca/keys

Kemudian berikan komentar :

./clean-all

Sekarang, kita dapat membangun akar CA kami dengan mengetikkan:

./build-ca

Ini akan memulai proses menciptakan kunci otoritas sertifikat akar dan sertifikat. Karena kita mengisi varsberkas, semua nilai harus diisi secara otomatis. Tekan ENTER melalui petunjuk untuk mengkonfirmasi pilihan

kamu sekarang memiliki CA yang dapat digunakan untuk membuat sisa file yang kita butuhkan.

Langkah 5: Buat Sertifikat Server, Key, dan Enkripsi File

Berikutnya, kita akan menghasilkan sertifikat VPS dan pasangan kunci, serta beberapa file tambahan yang digunakan selama proses enkripsi.

Mulailah dengan menghasilkan sertifikat server OpenVPN dan pasangan kunci. Kita dapat melakukan ini dengan mengetik:

Catatan : Jika Anda memilih nama lain dari  server sini, Anda akan harus menyesuaikan beberapa petunjuk di bawah ini. Misalnya, saat menyalin file yang dihasilkan ke  /etc/openvpn directroy, Anda harus mengganti nama-nama yang benar. Anda juga harus memodifikasi  /etc/openvpn/server.conf berkas yang lebih untuk menunjuk ke benar  .crt dan  .key file.

./build-key-server server

Sekali lagi, petunjuknya akan memiliki nilai default berdasarkan argumen yang baru saja kita buat ( server) dan isi pada vars file yang kita berikan.

Berikutnya, kita akan menghasilkan beberapa tantangan lain. Kita bisa menghasilkan Diffie-Hellman key yang kuat untuk digunakan selama pertukaran key dengan mengetikkan:

./build-dh

Ini mungkin memakan waktu beberapa menit untuk menyelesaikan.

Setelah itu, kita bisa menghasilkan HMAC signature untuk memperkuat TLS atau kemampuan verifikasi integritas server:

openvpn --genkey --secret keys/ta.key

Langkah 6: Menghasilkan Sertifikat Klien dan Key Pair

Berikutnya, kita bisa menghasilkan sertifikat klien dan pasangan kunci. Meskipun ini bisa dilakukan pada mesin klien dan kemudian ditandatangani oleh server / CA untuk tujuan keamanan, untuk panduan ini kita akan menghasilkan kunci ditandatangani pada server demi kesederhanaan.

Kami akan menghasilkan klien tunggal kunci / sertifikat untuk panduan ini, tetapi jika Anda memiliki lebih dari satu klien, Anda dapat mengulangi proses ini sebanyak yang anda inginkan.

Karena Anda mungkin kembali ke langkah ini di lain waktu, kami akan kembali sumber  vars berkas. Kami akan menggunakan  client1sebagai nilai untuk sertifikat pertama / sepasang kunci kami untuk panduan ini.

Untuk menghasilkan kredensial tanpa password, untuk membantu dalam koneksi otomatis, gunakan  build-keyperintah seperti ini:

cd ~/openvpn-ca source vars ./build-key client1

Langkah 7: mengkonfigurasi layanan OpenVPN

Berikutnya, kita bisa mulai mengkonfigurasi layanan OpenVPN menggunakan mandat dan file kami telah dihasilkan.

Salin file ke direktori OpenVPN

Untuk memulai, kita perlu menyalin file-file yang kita butuhkan ke  /etc/openvpn direktori konfigurasi.

Kita bisa mulai dengan semua file yang kita hasilkan. Ini ditempatkan dalam  ~/openvpn-ca/keys.

Isikan perintah berikut

cd ~ / openvpn-ca / kunci
sudo cp ca.crt server.crt server.key ta.key dh2048.pem / etc / openvpn

Berikutnya, kita perlu menyalin dan unzip sampel OpenVPN file konfigurasi ke direktori konfigurasi sehingga kita bisa menggunakannya sebagai dasar untuk setup kita:

gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf

Sesuaikan konfigurasi OpenVPN

Sekarang bahwa file kita berada di tempat, kita dapat memodifikasi file konfigurasi server:

sudo nano /etc/openvpn/server.conf

Konfigurasi dasar

Pertama, cari bagian HMAC dengan mencari  tls-auth. Hapus “ ”Tanda komentar pada  tls-auth dan tambahkan  key-direction parameter set “0”:

tls-auth ta.key 0 # This file is secret
key-direction 0

Berikutnya, cari bagian atas cipher kriptografi dengan mencari komentar  cipher garis. The  AES-128-CBC cipher menawarkan tingkat baik enkripsi dan didukung. Hapus “ ”Tanda komentar pada  cipher AES-128-CBC baris:

cipher AES-128-CBC

Di bawah ini, menambahkan  auth baris untuk memilih pesan HMAC . Untuk ini,  SHA256 adalah pilihan yang baik:

auth SHA256 Akhirnya, cari user dan  group pengaturan dan hapus ";" seperti di awal untuk tanda komentar garis:

user nobody
group nogroup

Pengaturan di atas akan membuat koneksi VPN antara dua mesin, tapi tidak akan memaksa koneksi untuk menggunakan terowongan. Jika Anda ingin menggunakan VPN untuk rute semua lalu lintas Anda, Anda mungkin akan ingin mendorong pengaturan DNS ke komputer klien.

Anda dapat melakukan ini, tanda komentar beberapa arahan yang akan mengkonfigurasi mesin klien untuk mengarahkan semua lalu lintas web melalui VPN. Menemukan  redirect-gateway bagian dan menghapus titik koma “ ”Dari awal  redirect-gateway baris untuk tanda komentar itu:

push "redirect-gateway def1 bypass-dhcp"

Tepat di bawah ini, menemukan  dhcp-option bagian. Sekali lagi, menghapus “ ”Dari depan kedua baris untuk tanda komentar mereka:

push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

Langkah 8: Mengatur Konfigurasi Server Jaringan

Berikutnya, kita perlu menyesuaikan beberapa aspek dari jaringan server sehingga OpenVPN berada pada jalur yang benar.

Memungkinkan IP Forwarding

Pertama, kita perlu untuk memungkinkan server untuk lalu lintas ke depan. Hal ini cukup penting untuk fungsi yang kita inginkan pada server VPN.

Anda dapat menyesuaikan pengaturan ini dengan memodifikasi  /etc/sysctl.conf berkas:

sudo nano /etc/sysctl.conf

Di dalam, cari baris yang menetapkan  net.ipv4.ip_forward. Lepaskan “ # ” karakter dari awal baris untuk tanda komentar pengaturan bahwa:

Output:

Sesuaikan Aturan UFW untuk Masquerade Koneksi Client

Sebelum kita buka file konfigurasi firewall, kita perlu mencari interface jaringan publik dari mesin anda. Untuk melakukannya, ketik:

ip route | grep bawaan

inteface publik Anda harus mengikuti kata “dev”. Sebagai contoh, hasil ini menunjukkan antarmuka bernama  ens4, yang disorot di bawah:

Output:

default via 203.0.113.1 dev ens4 proto static metric 600

Bila Anda memiliki antarmuka yang berhubungan dengan rute default Anda, buka  /etc/ufw/before.rules file untuk menambahkan konfigurasi yang relevan:

/etc/ufw/before.rules nano sudo

File ini menangani konfigurasi yang harus dimasukkan ke dalam tempat sebelum aturan UFW konvensional dimuat. Menjelang atas file, tambahkan baris yang disorot di bawah. Ini akan mengatur kebijakan default untuk  POSTROUTING rantai di  nat meja dan menyamar lalu lintas yang datang dari VPN:

Catatan : Jangan lupa untuk mengganti  ens4 di  -A POSTROUTING baris di bawah dengan antarmuka Anda ditemukan di perintah di atas.

#
# rules.before
#
# Rules that should be run before the ufw command line added rules. Custom
# rules should be added to one of these chains:
#   ufw-before-input
#   ufw-before-output
#   ufw-before-forward
#

# START OPENVPN RULES
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0] 
# Allow traffic from OpenVPN client to ens4 (change to the interface you discovered!)
-A POSTROUTING -s 10.8.0.0/8 -o ens4 -j MASQUERADE
COMMIT
# END OPENVPN RULES

# Don't delete these required lines, otherwise there will be errors
*filter
. . .

tutup file ketika anda selesai.

Kita perlu memberitahu UFW untuk memungkinkan paket diteruskan secara default juga. Untuk melakukan hal ini, kita akan membuka  /etc/default/ufw file yang:

sudo nano / etc / default / ufw

Di dalam, menemukan  DEFAULT_FORWARD_POLICY direktif. Kami akan mengubah nilai dari  DROP ke  ACCEPT:

DEFAULT_FORWARD_POLICY="ACCEPT"

Simpan dan tutup file tersebut ketika Anda selesai.

Buka OpenVPN Pelabuhan dan Aktifkan Perubahan

Berikutnya, kami akan menyesuaikan firewall itu sendiri untuk memungkinkan lalu lintas ke OpenVPN.

Jika Anda tidak mengubah port dan protokol dalam  /etc/openvpn/server.conf berkas, Anda akan perlu untuk membuka lalu lintas UDP ke port 1194. Jika Anda memodifikasi pelabuhan dan / atau protokol, menggantikan nilai-nilai yang Anda pilih di sini.

Kami juga akan menambahkan port SSH dalam kasus Anda lupa untuk menambahkannya ketika mengikuti tutorial prasyarat:

sudo ufw memungkinkan 1194 / udp

sudo ufw memungkinkan OpenSSH

Sekarang, kita dapat menonaktifkan dan mengaktifkan kembali UFW untuk memuat perubahan dari semua file kita sudah dimodifikasi:

sudo ufw menonaktifkan 
sudo ufw mengaktifkan

Langkah 9: Mulai dan Aktifkan Layanan OpenVPN

Kami akhirnya siap untuk memulai layanan OpenVPN di server kami. Kita dapat melakukannya dengan menggunakan systemd.

Kita harus mulai server OpenVPN dengan menentukan nama file konfigurasi kita sebagai variabel instance setelah systemd nama file unit. File konfigurasi untuk server :

sudo systemctl awal openvpn @ Server

Double-cek bahwa layanan telah mulai berhasil dengan mengetik:

sudo systemctl Status openvpn @ server

Anda juga dapat memeriksa bahwa OpenVPN  tun0 antarmuka tersedia dengan mengetikkan:

ip addr acara tun0

sudo systemctl memungkinkan openvpn @ server

Langkah 10: Buat Client Konfigurasi Infrastruktur

Berikutnya, kita perlu membuat sebuah sistem yang akan memungkinkan kita untuk membuat file konfigurasi klien dengan mudah.

Membuat Klien Config Struktur Direktori

Membuat struktur direktori di dalam direktori home Anda untuk menyimpan file:

mkdir -p ~ / klien-konfigurasi / file

Karena file konfigurasi klien anda akan memiliki kunci klien, kita harus mengunci hak akses pada direktori kita:

chmod 700 ~ / klien-konfigurasi / file

Membuat Konfigurasi Basis

Berikutnya, mari kita menyalin konfigurasi klien contoh ke direktori kami untuk digunakan sebagai konfigurasi dasar kami:

cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~ / client-configuration / base.conf 

Buka file baru ini di editor teks Anda:

nano ~ / client-configuration / base.conf 
 
kita perlu membuat beberapa penyesuaian.

Pertama, cari  remote direktif. Ini menunjukkan klien untuk alamat OpenVPN server kami. Ini harus menjadi alamat IP publik server OpenVPN Anda. Jika Anda mengubah port yang server OpenVPN mendengarkan pada, mengubah  1194 ke port yang dipilih:

. . .
# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote server_IP_address 1194
. . .

Pastikan bahwa protokol sesuai dengan nilai yang anda gunakan dalam konfigurasi server:

proto udp

Berikutnya, tanda komentar pada  user dan  group arahan dengan menghapus “ “:

# Downgrade privileges after initialization (non-Windows only)
user nobody
group nogroup

Menemukan arahan yang mengatur  ca,  certdan  key. Komentar dari arahan ini karena kita akan menambahkan sertifikat dan kunci dalam file itu sendiri:

# SSL/TLS parms.
# See the server config file for more
# description.  It's best to use
# a separate .crt/.key file pair
# for each client.  A single ca
# file can be used for all clients.
#ca ca.crt
#cert client.crt
#key client.key

Cermin  cipher dan  auth pengaturan yang kita tetapkan dalam  /etc/openvpn/server.conf berkas:

cipher AES-128-CBC
auth SHA256

Berikutnya, tambahkan  key-direction direktif di suatu tempat di file. Ini  harus  diatur untuk “1” untuk bekerja dengan server:

key-direction 1

Akhirnya, tambahkan beberapa  komentar  baris. Kami ingin menyertakan dengan setiap konfigurasi, tetapi hanya harus memungkinkan mereka untuk klien Linux yang kapal dengan  /etc/openvpn/update-resolv-conf berkas. Script ini menggunakan  resolvconf utilitas untuk memperbarui informasi DNS untuk klien Linux.

# script-security 2
# up /etc/openvpn/update-resolv-conf
# down /etc/openvpn/update-resolv-conf

Jika klien Anda menjalankan Linux dan memiliki  /etc/openvpn/update-resolv-conf file Anda harus tanda komentar baris ini dari yang dihasilkan OpenVPN file konfigurasi klien.

Simpan file ketika Anda selesai.

Membuat Konfigurasi Generation Script

Selanjutnya, kita akan membuat script sederhana untuk mengkompilasi konfigurasi dasar kami dengan file sertifikat, kunci, dan enkripsi yang relevan. Ini akan menempatkan konfigurasi dihasilkan dalam  ~/client-configs/files direktori.

Membuat dan membuka file bernama  make_config.sh dalam  ~/client-configs direktori:
nano ~ / client-configuration / make_config.sh
dalam, paste script berikut:

#!/bin/bash

# First argument: Client identifier

KEY_DIR=~/openvpn-ca/keys
OUTPUT_DIR=~/client-configs/files
BASE_CONFIG=~/client-configs/base.conf

cat ${BASE_CONFIG} \
    <(echo -e '<ca>') \
    ${KEY_DIR}/ca.crt \
    <(echo -e '</ca>\n<cert>') \
    ${KEY_DIR}/${1}.crt \
    <(echo -e '</cert>\n<key>') \
    ${KEY_DIR}/${1}.key \
    <(echo -e '</key>\n<tls-auth>') \
    ${KEY_DIR}/ta.key \
    <(echo -e '</tls-auth>') \
    > ${OUTPUT_DIR}/${1}.ovpn

Simpan dan tutup file tersebut ketika Anda selesai.

Tandai file sebagai executable dengan mengetikkan:
chmod 700 ~ / klien-konfigurasi / make_config.sh

Langkah 11: Menghasilkan Konfigurasi Client

Sekarang, kita dapat dengan mudah menghasilkan file konfigurasi klien.

Jika Anda mengikuti panduan ini, Anda membuat sertifikat klien dan kunci yang disebut  client1.crt dan  client1.key masing-masing dengan menjalankan   perintah pada langkah 6. Kami dapat menghasilkan konfigurasi untuk mandat ini dengan pindah ke kami   direktori dan menggunakan script yang kami buat: cd ~ / klien -configs./build-key client1~/client-configs

./make_config.sh client1
Jika semuanya berjalan dengan baik, kita harus memiliki  client1.ovpn file kami  ~/client-configs/files direktori:
ls ~ / klien-konfigurasi / file

Keluaran

client1.ovpn

Selamat anda telah membuat dan mendapat layanan Gratis VPN.

Paling lengkap kode umum cara mengatur adalah dengan Samudera Digital .

Terima kasih sangat banyak ~

 

No Comments

Leave a Reply

%d blogger menyukai ini: