
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 sudo
hak 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 sudo
pengguna 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 apt
untuk 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-rsa
direktori template ke direktori rumah kami dengan make-cadir
perintah:
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 vars
file 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_NAME
nilai tepat di bawah bagian ini, yang populates bidang subjek. Untuk menjaga tetap sederhana. kita akan menyebutnya server
dalam 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-rsa
utilitas untuk membangun otoritas sertifikat VPS.
Pastikan Anda berada di direktori CA Anda, dan kemudian sumber tersebutvars
file 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 vars
berkas, 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 client1
sebagai nilai untuk sertifikat pertama / sepasang kunci kami untuk panduan ini.
Untuk menghasilkan kredensial tanpa password, untuk membantu dalam koneksi otomatis, gunakan build-key
perintah 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, cariuser
dangroup
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
, cert
dan 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