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

Menyiapkan server OpenVPN dengan CentOS dan Viscosity

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 CentOS 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 CentOS 7 . Silakan merujuk ke Panduan Red Hat kami Untuk CentOS 8.
  • Anda memiliki root akses ke instalasi ini
  • Ketahui nama antarmuka jaringan Anda (petunjuk tepat di bawah)
  • Instalasi CentOS ini adalah instalasi baru
  • Anda sudah memiliki salinan Viskositas yang terinstal di perangkat klien Anda

Jika Anda perlu mengunduh dan menginstal salinan CentOS, salinannya dapat ditemukan di https://www.centos.org/download/. Kami tidak akan membahas detail pengaturan instance CentOS, banyak panduan dapat ditemukan secara online. Jika Anda menjalankan versi CentOS 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).

Untuk mendapatkan nama Antarmuka Jaringan Utama (Akses WAN), jalankan yang berikut ini di Server CentOS Anda:
ip route | grep default | awk 'NR==1 {print $(NF-4)}'

Jika Anda memiliki antarmuka jaringan kedua untuk mengakses mesin di jaringan lokal Anda, Anda akan memerlukan nama ini juga saat menyiapkan firewall dan perutean.

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 langkah-langkah dalam panduan ini secara menyeluruh untuk memastikan bahwa, jika Anda mengikuti petunjuk yang dirinci di bawah ini, Anda akan menikmati manfaat menjalankan server OpenVPN Anda sendiri.

Untuk informasi lebih lanjut atau bantuan dengan CentOS, lihat forum komunitas di https://www.centos.org/forums/

Mengakses Antarmuka Baris Perintah

Langkah-langkah yang diuraikan dalam panduan ini dilakukan melalui antarmuka baris perintah (yaitu terminal) di server CentOS Anda. Jika Anda menjalankan server ini dari jarak jauh, Anda harus menggunakan aplikasi SSH untuk menghubungkan dengan aman antara perangkat klien Anda dan server (untuk "SSH ke" server Anda). Jika Anda menyiapkan server OpenVPN Anda di server pribadi virtual (VPS), Anda mungkin hanya terbiasa dengan antarmuka web. Banyak pemasok VPS menyediakan akses SSH selain antarmuka web. Silakan berkonsultasi dengan penyedia VPS Anda untuk detailnya.

Jika Anda baru mengenal SSH, kami memiliki beberapa petunjuk di Panduan Pengenalan kami.

Desktop CentOS

Jika Anda memiliki akses lokal ke server CentOS Anda, maka Anda dapat melakukan langkah-langkah panduan ini secara langsung, tanpa SSHing ke server. Langkah-langkahnya perlu dilakukan di jendela terminal, jadi langkah pertama adalah membuka jendela terminal di CentOS dengan akses root. Dari desktop, buka aplikasi terminal dengan mengeklik tarik-turun “Aplikasi” di kiri atas dan memilih "Terminal" dari Favorit daftar. Ini akan membuka jendela terminal tempat kita dapat melanjutkan penyiapan lainnya.

Sekarang Anda memiliki akses ke terminal di server CentOS, Anda perlu mengubah pengguna menjadi root. Ketik ke jendela terminal:

su root

lalu masukkan kata sandi root Anda saat diminta. Anda akan melihat bahwa Anda sekarang masuk ke akun root.

Memulai

Setelah masuk ke root, kita perlu memastikan bahwa daftar repositori CentOS terbaru dengan mengetikkan yang berikut:

yum update -y

Ini akan berjalan melalui dan memperbarui paket yang sudah diinstal sebelumnya. Jika ada pembaruan yang ditemukan, Anda akan ditanya apakah ingin melanjutkan. Konfirmasikan bahwa Anda melakukannya dengan memasukkan y . Anda mungkin diberi tahu bahwa Anda perlu memulai ulang setelah upgrade paket selesai. Jika demikian, pastikan untuk masuk kembali ke terminal sebagai root setelah memulai ulang.

Selanjutnya kita perlu menginstal EPEL (Paket Ekstra untuk Enterprise Linux), karena ini berisi paket OpenVPN.

yum install epel-release -y

Sekarang kami memiliki paket yang diperluas, kami dapat melanjutkan dan menginstal OpenVPN. Ketik yang berikut ini ke terminal:

yum install openvpn -y

Membuat Konfigurasi, 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. Anda dapat mengikuti bagian untuk Linux menggunakan penginstal CentOS 7 RPM dan menyalin konfigurasi klien Anda dari server (kami menyarankan ini), atau membuat semua yang ada di PC atau Mac Anda dan menyalin server folder yang dihasilkan ke server CentOS Anda.

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.

Setelah Anda membuat Konfigurasi Anda, Anda perlu mentransfer konfigurasi server ke server Anda, atau mentransfer konfigurasi klien Anda dari server Anda. Jika Anda memiliki akses lokal, drive USB adalah yang termudah. Jika tidak, kami memiliki beberapa bantuan tentang cara mentransfer file dengan SCP di Panduan Pengenalan kami.

Penerusan IP

Untuk meneruskan permintaan kami melalui VPN, kami ingin server OpenVPN bertindak seperti router. Karena itu, kita perlu mengaktifkan penerusan IP.

  1. Di terminal, kita dapat mengaktifkan penerusan IP di server CentOS dengan memasukkan:
    echo 1 > /proc/sys/net/ipv4/ip_forward
  2. Untuk memastikan bahwa host di jaringan rumah/kantor dapat menemukan server VPN, kita perlu membuat server merespons setiap permintaan ARP:
    echo 1 > /proc/sys/net/ipv4/conf/ens33/proxy_arp
    di mana ens33 adalah antarmuka jaringan jaringan rumah/kantor jika Anda memiliki dua antarmuka jaringan, atau Antarmuka Jaringan Utama (WAN) jika tidak (Lihat bagian Persiapan untuk informasi lebih lanjut).
  3. Setiap kali kita me-reboot server, perintah ini akan dibatalkan. Untuk memastikan hal itu tidak terjadi, kita perlu memodifikasi file sysctl.conf:
    nano /etc/sysctl.conf
  4. Tambahkan baris berikut ke bagian bawah file ini:
    net.ipv4.ip_forward = 1
    dan
    net.ipv4.conf.ens33.proxy_arp = 1
  5. Tekan ctrl + x untuk keluar dari nano. Simpan perubahan saat diminta.
  6. Untuk mengaktifkan perubahan yang dibuat pada file sysctl.conf, ketik:
    sysctl -p /etc/sysctl.conf

Server DNS

Jika Anda berencana untuk mengenkripsi semua lalu lintas jaringan melalui server VPN Anda, maka disarankan untuk mengaktifkan server DNS Anda sendiri.

  1. Untuk menginstal server DNS, ketik:
    yum install bind bind-utils bind-libs bind-chroot
  2. Untuk menyiapkan aturan penerusan untuk server DNS kami, kami akan memodifikasi file konfigurasi:
    nano /etc/named.conf
  3. Di bagian atas Anda akan melihat kumpulan instruksi bertanda opsi . Sisipkan dua baris berikut di bagian bawah daftar opsi:
    forwarders {8.8.8.8;8.8.4.4;}; #IP of upstream nameservers
    forward only; #rely completely on our upstream nameservers
    tempat kami menggunakan server DNS Google (Anda bebas menggunakan layanan resolusi DNS pilihan Anda).
  4. Tambahkan subnet VPN (10.8.0.0/24) ke dengarkan dan perbolehkan kueri parameter di atas opsi sehingga sekarang terlihat seperti:
    ...
    listen-on port 53 { 10.8.0.0/24;127.0.0.1; };
    ...
    allow-query {10.8.0.0/24;localhost; };
    ...
  5. Tekan ctrl + x untuk keluar dari nano. Simpan perubahan saat diminta.
  6. Setel izin file conf ke 644:
    chmod 644 /etc/named.conf

Karena file conf ini sensitif terhadap kesalahan, kita dapat memeriksanya dengan mengetik:

named-checkconf /etc/named.conf

Jika file konfigurasi Anda tidak mengandung kesalahan, perintah ini tidak akan mengembalikan apa pun.

  1. Buka daftar server nama:
    nano /etc/resolv.conf
  2. Setel resolver server untuk menunjuk ke dirinya sendiri:
    nameserver 127.0.0.1
  3. Tekan ctrl + x untuk keluar dari nano. Simpan perubahan saat diminta.
  4. Jika server CentOS Anda dijalankan pada router dengan layanan DHCP, Anda perlu memastikan bahwa file resolv.conf tidak ditimpa saat perpanjangan sewa DHCP. Ketik:
    nano /etc/sysconfig/network-scripts/ifcfg-ens33
    Ganti ens33 dengan nama Antarmuka Jaringan Utama Anda jika berbeda (Lihat bagian Persiapan untuk informasi lebih lanjut)
  5. Pastikan bahwa tiga parameter berikut telah disetel:
    BOOTPROTO=dhcp
    PEERDNS=no
    TYPE=Ethernet
  6. Tekan ctrl + x untuk keluar dari nano. Simpan perubahan saat diminta.
  7. Untuk memulai server DNS, ketik:
    systemctl start named
  8. Aktifkan server DNS mulai otomatis pada boot sistem:
    systemctl enable named

Itu saja, server DNS sekarang sudah siap.

Aturan Firewall

Kami akan menggunakan firewalld default firewall diinstal secara default di CentOS. 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 CentOS mandiri yang sederhana, pengaturan firewall di bawah ini seharusnya cukup untuk mengaktifkan dan menjalankan server OpenVPN Anda.

  1. Izinkan openvpn layanan:
    firewall-cmd --permanent --add-service=openvpn
    firewall-cmd --add-service=openvpn
  2. Setel server OpenVPN untuk menyediakan masquerade:
    firewall-cmd --permanent --add-masquerade
    firewall-cmd --add-masquerade
  3. Izinkan port OpenVPN (1194):
    firewall-cmd --permanent --add-port=1194/udp
  4. Mulai ulang firewall dengan setelan baru ini:
    firewall-cmd --reload

Memulai Server OpenVPN

Pada titik ini dasar-dasarnya selesai. Konfigurasi server dan file Anda harus disalin di server dari tempat Anda membuatnya.

Pertama, salin file konfigurasi server ke direktori OpenVPN:

sudo cp /path/to/configs/server/* /etc/openvpn/

Sekarang mulai server Anda, dan aktifkan untuk memulai setelah reboot juga.

systemctl -f enable [email protected]
systemctl start [email protected]

Untuk memeriksa status server, masukkan:

systemctl -l status [email protected]

Yang harus dibalas dengan status dan berwarna hijau, Anda akan melihat:

...
Active: active (running)
...

Server OpenVPN Anda sekarang aktif dan berjalan dan siap untuk Anda sambungkan.

Penyiapan Router

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

Namun jika server CentOS 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 penerusan port 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). Jadi, Anda perlu menyiapkan aturan perutean statis yang memiliki properti berikut:

Destination: 10.8.0.0
Subnet mask: 255.255.255.0
Default gateway: your-server-IP

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.

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 Server dan Klien OpenVPN dengan Easy-RSA 3 di CentOS 7

  2. Menyiapkan Server dan Klien NFS di CentOS 7.2

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

  1. Cara Menginstal OpenVPN Server dan Klien dengan Easy-RSA 3 di CentOS 8

  2. Menyiapkan server Kebingungan dengan Obfsproxy dan Viskositas

  3. Menyiapkan server OpenVPN dengan DD-WRT dan Viskositas

  1. Menyiapkan server OpenVPN dengan Netgear dan Viscosity

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

  3. Menyiapkan server OpenVPN dengan OPNsense dan Viscosity