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

Menyiapkan server OpenVPN dengan VyOS dan Viskositas

Virtual Private Networks (VPNs) dapat digunakan untuk sejumlah aplikasi yang sangat berguna. Anda dapat terhubung dengan aman ke hotspot WiFi publik mana pun. Anda dapat mengatasi pembatasan pemblokiran geografis di situs web favorit Anda. Dan Anda bahkan dapat terhubung ke jaringan rumah atau kantor Anda dari mana saja di dunia, seolah-olah Anda sedang duduk tepat di meja Anda. Panduan ini akan memandu Anda melalui proses pengaturan server OpenVPN Anda sendiri, dan menghubungkannya dengan salinan Viskositas Anda.

Menjalankan server OpenVPN Anda sendiri akan memungkinkan Anda untuk mengenkripsi semua yang Anda lakukan di internet, sehingga Anda dapat melakukan perbankan online dengan aman menggunakan WiFi gratis di kafe favorit Anda. Apa pun yang Anda kirim melalui koneksi VPN akan dienkripsi dari perangkat Anda hingga mencapai server OpenVPN Anda di rumah. Menyiapkan server OpenVPN Anda untuk mengakses jaringan rumah atau kantor Anda memberi Anda akses penuh ke semua file Anda di jaringan Anda.

Panduan ini akan memandu Anda melalui langkah-langkah yang terlibat dalam menyiapkan server OpenVPN pada host VyOS yang memungkinkan Anda mengakses jaringan rumah/kantor Anda dengan aman dari lokasi yang jauh dan secara opsional mengirim semua lalu lintas jaringan Anda melaluinya sehingga Anda dapat mengakses internet dengan aman juga.

Persiapan

Untuk panduan ini, kami berasumsi:

  • Anda telah menginstal versi terbaru VyOS (1.1 pada saat penulisan)
  • Akun Anda memiliki sudo hak istimewa untuk instalasi ini
  • Instalasi VyOS ini adalah instalasi baru
  • Anda sudah memiliki salinan Viskositas yang terinstal di perangkat klien Anda

Jika Anda perlu mengunduh dan menginstal salinan VyOS, salinannya dapat ditemukan di http://vyos.net/wiki/Main_Page. Kami tidak akan membahas detail pengaturan instance VyOS, banyak panduan dapat ditemukan secara online. Jika Anda menjalankan versi VyOS yang berbeda, kemungkinan besar banyak atau bahkan semua langkah yang diuraikan dalam panduan ini akan tetap berlaku. Jika Anda ingin menyiapkan server OpenVPN pada sistem operasi yang berbeda, silakan lihat panduan kami yang lain.

Jika Anda belum memiliki salinan Viscosity yang sudah terinstal di klien Anda, silakan lihat panduan penyiapan ini untuk menginstal Viscosity (Mac | Windows).

Dukungan

Sayangnya kami tidak dapat memberikan dukungan langsung apa pun untuk menyiapkan server OpenVPN Anda sendiri. Kami memberikan panduan ini sebagai rasa hormat untuk membantu Anda memulai, dan memaksimalkan, salinan Viskositas Anda. Kami telah menguji secara menyeluruh langkah-langkah dalam panduan ini untuk memastikan bahwa, jika Anda mengikuti petunjuk yang dirinci di bawah ini, Anda seharusnya sudah siap untuk menikmati manfaat menjalankan server OpenVPN Anda sendiri.

Untuk informasi lebih lanjut atau bantuan dengan VyOS, ada berbagai sumber daya dan forum yang tersedia di https://vyos.io/

Memulai

Kami akan menganggap bahwa Anda telah menyiapkan antarmuka jaringan seperti itu:

  • 'OUTSIDE' - eth0 terhubung ke internet
  • 'INSIDE' - eth1 terhubung ke jaringan rumah lokal Anda

Membuat Sertifikat dan Kunci

Langkah selanjutnya adalah membuat konfigurasi Anda untuk server dan klien Anda serta sertifikat untuk menyertainya. Anda dapat melakukannya dengan mudah dengan mengikuti Panduan Membuat Sertifikat dan Kunci. Hasilkan semua yang ada di PC atau Mac Anda, lalu catat jalur ke server Anda folder yang dibuat, kita akan menggunakan file di sini nanti.

Jika Anda menggunakan Server DNS default (10.8.0.1), Anda harus menyiapkan server DNS sendiri, petunjuknya ada di akhir artikel ini. Sebaiknya gunakan server DNS yang ada, server DNS yang tersedia untuk umum seperti milik Google (8.8.8.8 dan 8.8.4.4) adalah yang termudah.

Sekarang kita perlu menyalin file berikut ke /config/auth/ direktori pada alat VyOS Anda yang akan berada di server folder yang openvpn-generate baru saja dibuat, kami sarankan menggunakan SCP. Jika Anda tidak terbiasa dengan SCP, kami memiliki beberapa bantuan tentang cara mentransfer file dengan SCP di Panduan Pengenalan kami.

  • ca.crt
  • server.crt
  • server.key
  • dh.pem

Jika Anda menggunakan SCP dari baris perintah, contoh perintahnya adalah
scp path/to/server/ca.crt [email protected]:/config/auth/

Konfigurasi Server OpenVPN

Ada sejumlah pengaturan berbeda yang perlu kami sesuaikan dalam konfigurasi server OpenVPN kami. Di terminal, masuk ke mode konfigurasi dengan mengetik:

configure

Anda akan melihat perubahan cepat dari $ ke # . Jika Anda salah memasukkan perintah konfigurasi berikut, Anda dapat menghapus perintah yang dimasukkan sebelumnya dengan mengulanginya, tetapi mengganti kata 'set' di awal dengan kata 'delete'.

Rekatkan yang berikut ini ke jendela terminal:

# Configure this OpenVPN instance to run as the VPN server
set interfaces openvpn vtun0 mode server

# The OpenVPN server needs to know the location of the Diffie Hellman file
#NOTE: Depending on how you generated your keys, this file name might be 'dh.pem' instead
set interfaces openvpn vtun0 tls dh-file '/config/auth/dh.pem'

# Our VPN connection will be transported over UDP
set interfaces openvpn vtun0 openvpn-option "--proto udp"

# The server needs to keep a record of client virtual IP addresses so that they
# can be reassigned if the server goes down
set interfaces openvpn vtun0 openvpn-option "--ifconfig-pool-persist ipp.txt"

# To ensure that each side of the VPN knows if the connection has been severed,
# we want to ping each side every 10 seconds. If either side fails to recieve a
# ping within 2 minutes, then it will assume the other side is down
set interfaces openvpn vtun0 openvpn-option "--keepalive 10 120"

# There can be security issues if you run the OpenVPN server as root, so we will
# downgrade the user and group
set interfaces openvpn vtun0 openvpn-option "--user nobody --group nogroup"

# To avoid attempting to access resources that may no longer be accessible on
# restart
set interfaces openvpn vtun0 openvpn-option "--persist-key --persist-tun"

# To write (and rewrite) a short summary of current VPN connections every minute
# to a file
set interfaces openvpn vtun0 openvpn-option "--status openvpn-status.log"

# The verbosity of this connection logging (displayed in the Viscosity 'Details'
#  window) can range from 0 (silent) to 9 extremely verbose. We will use the 
# default of 3
set interfaces openvpn vtun0 openvpn-option "--verb 3"

# To prevent more than 10 duplicates of the same log message in a row from
# flooding the Viscosity log
set interfaces openvpn vtun0 openvpn-option "--mute 10"

# The credential files
set interfaces openvpn vtun0 tls ca-cert-file '/config/auth/ca.crt'
set interfaces openvpn vtun0 tls cert-file '/config/auth/server.crt'
set interfaces openvpn vtun0 tls key-file '/config/auth/server.key'

# The server will use the default OpenVPN port (1194)
set interfaces openvpn vtun0 openvpn-option "--port 1194"

# We need the VPN to create a tun network interface through which we can 
# route all our traffic:
set interfaces openvpn vtun0 openvpn-option "--dev vtun0"

# The VPN requires a private IP subnet. We will use the default OpenVPN IP
# subnet
set interfaces openvpn vtun0 server subnet '10.8.0.0/24'

# We want VPN clients connected to this server to be able to access any hosts
# accessible on your home network. We are assuming that your local network
# subnet is 192.168.0.x/24. If it is something else, you will need to change the
# IP address in the command below.
set interfaces openvpn vtun0 server push-route 192.168.0.0/24

# For enhanced security, set a cipher and auth hash
set interfaces openvpn vtun0 openvpn-option "--cipher AES-256-CBC"
set interfaces openvpn vtun0 openvpn-option "--auth SHA256"

# Lastly, we want to allow hosts on the home network to be able to see VPN
# clients connected to the OpenVPN server
set interfaces openvpn vtun0 openvpn-option "--client-to-client"

Berikan perhatian khusus pada alamat IP di set interfaces openvpn vtun0 server push-route 192.168.0.0/24 . Pastikan subnet ini cocok dengan subnet IP LAN rumah/kantor Anda. Jika Anda tidak menyiapkan server VPN ini untuk mengakses LAN rumah/kantor Anda, Anda dapat melewati baris ini sama sekali.

Aturan Firewall

Kami akan menggunakan firewall yang diinstal secara default di VyOS. Jika Anda menginstal OpenVPN di server yang sudah memiliki pengaturan firewall sendiri, pastikan untuk menambahkan aturan untuk mengizinkan lalu lintas OpenVPN kami. Namun, jika ini hanya server VyOS mandiri yang sederhana, pengaturan firewall di bawah ini seharusnya cukup untuk mengaktifkan dan menjalankan server OpenVPN Anda.

Masih dalam mode konfigurasi , rekatkan yang berikut ini ke jendela terminal:

# First we will set the rules for traffic passing through the server. We want
# the firewall to allow traffic for existing connections to the server, and drop 
# any new ones:
set firewall name OUTSIDE-IN default-action 'drop'
set firewall name OUTSIDE-IN rule 10 action 'accept'
set firewall name OUTSIDE-IN rule 10 state established 'enable'
set firewall name OUTSIDE-IN rule 10 state related 'enable'

# Next we will set the rules to allow the local network to talk to the outside world
set firewall name OUTSIDE-LOCAL default-action 'drop'
set firewall name OUTSIDE-LOCAL rule 10 action 'accept'
set firewall name OUTSIDE-LOCAL rule 10 state established 'enable'
set firewall name OUTSIDE-LOCAL rule 10 state related 'enable'</code>

# If you would like the ability to ping your VyOS server externally, add the following
set firewall name OUTSIDE-LOCAL rule 20 action 'accept'
set firewall name OUTSIDE-LOCAL rule 20 icmp type-name 'echo-request'
set firewall name OUTSIDE-LOCAL rule 20 protocol 'icmp'
set firewall name OUTSIDE-LOCAL rule 20 state new 'enable'

# If you would like the ability to SSH into your server externally (without a VPN connected), add the following
# NOTE - This can be a security risk and is not recommended
set firewall name OUTSIDE-LOCAL rule 30 action 'drop'
set firewall name OUTSIDE-LOCAL rule 30 destination port '22'
set firewall name OUTSIDE-LOCAL rule 30 protocol 'tcp'
set firewall name OUTSIDE-LOCAL rule 30 recent count '4'
set firewall name OUTSIDE-LOCAL rule 30 recent time '60'
set firewall name OUTSIDE-LOCAL rule 30 state new 'enable'
set firewall name OUTSIDE-LOCAL rule 31 action 'accept'
set firewall name OUTSIDE-LOCAL rule 31 destination port '22'
set firewall name OUTSIDE-LOCAL rule 31 protocol 'tcp'
set firewall name OUTSIDE-LOCAL rule 31 state new 'enable'

# Allow external connections to the OpenVPN port. This will allow you to VPN to your server
# from somewhere outside your local network (like a coffee shop)
set firewall name OUTSIDE-LOCAL rule 40 action 'accept'
set firewall name OUTSIDE-LOCAL rule 40 destination port '1194'
set firewall name OUTSIDE-LOCAL rule 40 protocol 'udp'

# Apply these firewall policies:
set interfaces ethernet eth0 firewall in name 'OUTSIDE-IN'
set interfaces ethernet eth0 firewall local name 'OUTSIDE-LOCAL'

# Lastly, we need to enable NAT masquerade:
set nat source rule 100 outbound-interface 'eth0'
set nat source rule 100 source address '10.8.0.0/24'
set nat source rule 100 translation address 'masquerade'
set nat source rule 200 outbound-interface 'eth1'
set nat source rule 200 source address '10.8.0.0/24'
set nat source rule 200 translation address 'masquerade'

Server DNS

Jika Anda berencana untuk mengenkripsi semua lalu lintas jaringan melalui server VPN Anda, maka disarankan untuk mengaktifkan server DNS Anda sendiri. VyOS memiliki forwarder DNS yang diinstal secara default yang dapat kita gunakan untuk menyediakan server DNS kita sendiri untuk koneksi VPN, untuk mencegah serangan terkait DNS.

Masih dalam mode konfigurasi , rekatkan yang berikut ke jendela terminal:

# We will set the DNS forwarder to store 100 lookups locally, to speed up 
# repeated DNS requests:
set service dns forwarding cache-size '100'

# DNS queries will be resolved coming from the local network:
set service dns forwarding listen-on 'eth1'

# DNS queries will be resolved coming from our VPN connection:
set service dns forwarding listen-on 'vtun0'

# We will use the Google DNS servers (you are free to use your DNS resolution
# service of choice):
set service dns forwarding name-server '8.8.8.8'
set service dns forwarding name-server '8.8.4.4'

Sekarang setelah kita selesai mengatur konfigurasi, simpan perubahan dengan memasukkan yang berikut ke terminal:

commit;save

dan keluar dari mode konfigurasi:

exit

Penyiapan Router

Jika server VyOS Anda dapat diakses secara langsung , maka Anda dapat melewati bagian ini . Tidak ada router untuk dikonfigurasi.

Namun jika server VyOS Anda berada di belakang router (seperti di WiFi rumah Anda), maka Anda perlu mengonfigurasi router Anda untuk mengizinkan lalu lintas VPN. Karena banyaknya model router dan konfigurasi jaringan yang berbeda, kami tidak dapat memberikan panduan langkah demi langkah tentang cara mengatur router Anda untuk mengizinkan lalu lintas VPN. Namun ada beberapa pengaturan yang mungkin perlu Anda ubah, jadi kami akan menguraikannya di sini.

Karena router akan mengarahkan semua lalu lintas ke dan dari server OpenVPN Anda, Anda perlu menyiapkan port forwarding sehingga server OpenVPN dapat diakses secara eksternal. Penerusan port mungkin berada di bawah bagian di antarmuka manajemen router Anda yang bernama 'Server Virtual'. Secara umum, Anda ingin meneruskan semua lalu lintas yang masuk ke router pada port OpenVPN (1194). Anda perlu menyiapkan aturan untuk mengirim lalu lintas UDP apa pun pada port ini ke alamat IP lokal server OpenVPN Anda (yang mungkin berkisar antara 192.168.0.x).

Jika Anda telah menyiapkan penerusan porta, harap catat juga alamat IP WAN eksternal . Ini adalah alamat IP yang ditetapkan ke router Anda oleh Penyedia Layanan Internet (ISP) Anda. Alamat ini akan diperlukan saat mengonfigurasi koneksi Anda di Viscosity di bawah ini.

Pengaturan router utama lainnya yang perlu Anda pertimbangkan adalah perutean statis. Karena Anda akan mengatur VPN, akan ada lalu lintas yang dikirim ke router Anda dengan IP sumber atau tujuan dalam kisaran 10.8.0.x. Lalu lintas ini perlu memiliki perutean statis untuk memastikan bahwa ketika sebuah host menerima permintaan dari klien VPN (pada subnet 10.8.0.x) dan mengirimkan respons ke alamat itu, router mengetahui cara mengonversi 10.8. 0.x alamat IP ke alamat yang dipahaminya (yaitu 192.168.0.x). Dengan demikian, Anda perlu menyiapkan aturan perutean statis yang memiliki properti berikut:

Tujuan:10.8.0.0Subnet mask:255.255.255.0Gateway default:IP-server-Anda

di mana IP server-Anda adalah alamat IP server OpenVPN Anda di jaringan lokal (sesuatu dalam kisaran 192.168.0.x).

Menyiapkan Viskositas

Langkah terakhir adalah mengatur Viskositas. Berkat openvpn-generate, ini semudah mengimpor dan menghubungkan.

Mengimpor

Salin file *.visz yang Anda buat dengan openvpn-generate ke mesin Mac atau Windows Anda dengan Viscosity terinstal dan klik dua kali file tersebut. Anda akan melihat konfirmasi bahwa konfigurasi berhasil diimpor.

Setelah diimpor, edit koneksi Anda dan buka tab Advanced. Tambahkan dua perintah berikut pada baris baru:

cipher AES-256-CBC
auth SHA256

Menghubungkan dan Menggunakan Koneksi VPN Anda

Anda sekarang siap untuk terhubung. Klik ikon Viskositas di bilah menu macOS atau baki sistem Windows untuk membuka Menu Viskositas, pilih koneksi yang Anda impor, dan Viskositas akan terhubung.

Untuk memeriksa apakah VPN aktif dan berjalan, Anda dapat membuka jendela Detail dari Menu Viskositas. Ini akan memungkinkan Anda untuk melihat detail koneksi, lalu lintas, dan log OpenVPN.



Itu saja, Anda telah menyiapkan server OpenVPN Anda sendiri. Selamat, Anda sekarang bebas menikmati keuntungan mengoperasikan server OpenVPN Anda sendiri!


OpenVPN
  1. Cara menginstal dan menghosting server OpenVPN dengan Docker

  2. Instal dan Siapkan Server OpenVPN di Ubuntu 20.04

  3. Instal dan Konfigurasi OpenVPN Server FreeBSD 12

  1. Cara Mengatur dan Mengonfigurasi Server OpenVPN di Ubuntu 22.04

  2. Menyiapkan server Kebingungan dengan Obfsproxy dan Viskositas

  3. Menyiapkan server OpenVPN dengan CentOS dan Viscosity

  1. Menyiapkan server OpenVPN dengan DD-WRT dan Viskositas

  2. Menyiapkan server OpenVPN dengan Netgear dan Viscosity

  3. Menyiapkan server OpenVPN dengan Okta Single Sign-on Web Authentication dan Viscosity