Pengaturan OpenVPN di Ubuntu 18.04 Bionic Beaver Linux

Pengaturan OpenVPN di Ubuntu 18.04 Bionic Beaver Linux

Objektif

Pelajari Cara Menginstal dan Mengkonfigurasi Server OpenVPN di Ubuntu 18.04 Bionic Beaver

Persyaratan

  • Izin root

Konvensi

  • # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root
    langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
  • $ - mensyaratkan perintah Linux yang diberikan untuk dieksekusi sebagai pengguna biasa

Versi lain dari tutorial ini

Ubuntu 20.04 (fossa fokus)

Perkenalan

Teknologi jaringan pribadi virtual memungkinkan untuk mengakses jaringan pribadi yang aman dengan menggunakan jaringan yang kurang aman seperti internet. VPN biasanya digunakan untuk menghubungkan cabang -cabang terpencil secara fisik dari suatu organisasi, membuatnya tampak seolah -olah mereka adalah bagian dari LAN yang sama (misalnya dua kantor di berbagai kota). Lalu lintas antara sisi koneksi dienkripsi menggunakan terowongan, yang melindungi data yang dikirimkan dan informasi koneksi itu sendiri. Untuk karakteristik yang sama, VPN sering digunakan untuk menghindari pembatasan pemerintah dan menganonimkan lalu lintas internet.

Dalam tutorial ini kita akan melihat cara membuat server jaringan pribadi virtual menggunakan OpenVPN, perangkat lunak VPN open source di Ubuntu 18.04 Bionic Beaver.

Langkah 1 - Instalasi

Menginstal OpenVPN di Ubuntu 18.04 sangat mudah: Perangkat lunak ini tersedia di repositori default. Kami juga perlu menginstal Easy-RSA paket, yang akan membantu kami dalam pembuatan sertifikat dan kunci yang dibutuhkan:

$ sudo apt-get update && sudo apt-get install OpenVPN Easy-RSA

Beberapa detik dan perangkat lunak akan diinstal di mesin kami, siap untuk dikonfigurasi.

Langkah 2 - Pengaturan Infrastruktur Server

Di bagian ini kami akan menghasilkan sertifikat dan kunci yang dibutuhkan: Pertama kami akan membuat kebiasaan kami Ca (Otoritas Sertifikat), maka kami akan menghasilkan server Pasangan Sertifikat/Kunci, itu Diffie-Hellman parameter dan Kunci TLS-Auth.

Mari kita mulai dengan menghasilkan direktori yang akan berisi skrip yang akan melakukan pekerjaan berat untuk kita. Kami menjalankan Make-Cadir perintah, itu adalah bagian dari Easy-RSA paket, memberikan nama direktori yang ingin kami buat. Kami juga ingin memasukkan direktori segera setelah dibuat:

$ Make-Cadir sertifikat && sertifikat CD

Dalam hal ini saya menelepon direktori sertifikat. Ini akan menjadi direktori kerja kami untuk sisa tutorial, oleh karena itu semua perintah yang disebutkan harus dipertimbangkan sebagai diluncurkan di dalamnya.



Langkah 2.1 - Pengaturan Variabel

Sebagai hal pertama, kita perlu menyesuaikan variabel yang akan digunakan untuk mengatur nilai yang digunakan selama pembuatan otoritas sertifikat dan sertifikat/kunci. Variabel didefinisikan di dalam vars mengajukan:

Ekspor key_config = "$ easy_rsa/yang mana di luar easy_rsa" ekspor key_country = "us" ekspor key_province = "ca" ekspor key_city = "sanfrancisco" ekspor key_org = "fort-funston" Key_email = Me@Myhost = "fort-funston".mydomain "Ekspor key_ou =" myorganizationalUnit " 

Variabel yang sangat penting adalah Key_config, Yang, secara default diatur dengan memanggil skrip pembungkus kecil yang harus mengambil konfigurasi SSL yang tepat. Namun, jika digunakan dengan cara ini menghasilkan kesalahan, karena skrip tidak mengambil konfigurasi. Untuk menghindari ini, kami menentukan file konfigurasi secara langsung:

Ekspor key_config = "$ easy_rsa/openssl-1.0.0.CNF "

Nilai untuk variabel lain harus diubah dan disesuaikan dengan kebutuhan spesifik Anda. Setelah kami selesai mengedit file, kami harus "sumber" itu, untuk membiarkan variabel menjadi bagian dari lingkungan runtime kami:

$ source vars

Langkah 2.2 - Generasi CA

Kami dapat melanjutkan dan menghasilkan CA kami (Otoritas Sertifikat). Menjalankan bersih-semua Dan build-ca skrip secara berurutan. Generasi CA akan dimulai, menggunakan nilai -nilai variabel yang kami tentukan di vars file sebagai default untuk bidang yang sesuai:

$ ./bersih-semua && ./build-ca

Langkah 2.3 - Sertifikat dan Generasi Kunci

Langkah selanjutnya adalah pembuatan sertifikat dan kunci untuk server. Ini hanya masalah menjalankan skrip build-key-server yang memberikan nama yang ingin kami gunakan untuk sertifikat dan kunci sebagai parameter. Dalam hal ini kami menggunakan "server" karena itu adalah nama default yang digunakan dalam file konfigurasi VPN, seperti yang akan kita lihat lebih lanjut dalam tutorial:

$ ./Server Build-Key-Server

Ikuti instruksi di layar. Itu Tantangan Kata Sandi Dan nama perusahaan Bidang adalah opsional.

Langkah 2.4 - Generasi Parameter Diffie -Hellman

Langkah selanjutnya adalah membuat parameter diffie-hellman. Parameter tersebut digunakan untuk bertukar kunci kriptografi menggunakan saluran publik dan tidak aman. Kami menggunakan build-dh naskah:

$ ./build-dh

Script akan membutuhkan waktu untuk menghasilkan parameter, tergantung pada mesin yang sedang kita jalankan, bersabarlah!

Langkah 2.5 - menghasilkan kunci acak untuk digunakan sebagai rahasia bersama

Untuk memperkuat keamanan kami, selain menggunakan sertifikat, kami akan menghasilkan dan menggunakan kunci untuk menggunakan rahasia bersama. Server dan setiap klien akan membutuhkan salinan kunci ini:

$ openvpn --genkey --secret keys/ta.kunci

Langkah 2.6 - Menyalin file yang dihasilkan

Otoritas Sertifikat (CA.CRT), sertifikat (server.crt), kunci (server.kunci), parameter diffie-hellman (DH2048.PEM) dan kunci TLS-Auth (TA.kunci) file, seharusnya dihasilkan di dalam kunci direktori. Sekarang saatnya untuk menyalinnya /etc/openvpn:

$ sudo cp tombol/server.CRT, server.kunci, ca.CRT, DH2048.PEM, TA.kunci /etc /openvpn

Langkah 3 - Konfigurasi OpenVPN

Kami dapat melanjutkan dalam mengkonfigurasi layanan OpenVPN. Konfigurasi sampel (terkompresi) dapat ditemukan di /usr/share/doc/openvpn/contoh/sampel-config-files/server.conf.GZ: kita hanya perlu mengekstraknya ke direktori /etc /openvpn:

$ gzip -d -c/usr/share/doc/openvpn/contoh/sampel -config -files/server.conf.GZ | sudo tee/etc/openvpn/server.conf> /dev /null

Dengan perintah di atas kami mendekompresi file asli, mengirimkan outputnya ke stdout dan mengarahkan kembali melalui /etc/openvpn/server.conf mengajukan. Pastikan nilai default dalam file konfigurasi sesuai dengan yang kami hasilkan:

CA CA.Server CRT Cert.Server Key CRT.Kunci # File ini harus dirahasiakan DH DH2048.PEM 


Langkah 4 - Siapkan Firewall dan Izinkan Penerusan IP

Kami hampir selesai menyiapkan server VPN kami: Sekarang kami harus menyiapkan firewall, untuk memungkinkan lalu lintas yang masuk dari port 1194/UDP (port default dan protokol):

$ sudo UFW Izinkan OpenVPN

Sangat penting: Secara default hanya lalu lintas antara klien dan server melewati terowongan VPN, ini tidak termasuk lalu lintas internet. Untuk mengubah perilaku ini, pertama -tama kita harus melepaskan pilihan opsi secara online 192 dari file konfigurasi server (/etc/openvpn/server.conf):

Dorong "Redirect-Gateway DEF1 Bypass-DHCP" 

Selanjutnya, kita perlu menggunakan aturan ptable untuk mematikan klien VPN melalui internet. Perhatikan bahwa saya menentukan eth0 antarmuka tetapi Anda perlu menyesuaikan aturan ke antarmuka yang digunakan pada mesin Anda:

$ sudo ptables -t nat -a postrouting -s 10.8.0.0/24 -O eth0 -j Masquerade

Tetapkan cara ini, bagaimanapun, aturannya tidak akan bertahan reboot. Untuk membuatnya gigih, kita harus menambahkannya ke /etc/ufw/sebelumnya.aturan mengajukan. File ini berisi aturan yang diterapkan oleh UFW sebelum yang ditentukan dari baris perintah. Tambahkan aturan sebagai yang pertama dalam file:

*NAT: POSTROUTING ACCEPT [0: 0] -A POSTROUTING -S 10.8.0.0/8 -O ETH0 -J COMMIT 

Sekarang kita harus mengaktifkan penerusan paket. Pertama kita perlu mengedit /etc /sysctl.file conf dan uncomment line 28:

# Uncomment Baris berikutnya untuk mengaktifkan penerusan paket untuk NET IPv4.IPv4.ip_forward = 1 

Pada titik ini kita harus memuat ulang konfigurasi:

$ sudo sysctl -p /etc /sysctl.conf

Kita masih perlu mengizinkan penerusan paket melalui firewall UFW. Membuka /etc/default/ufw dan berubah Default_forward_policy dari MENJATUHKAN ke MENERIMA:

# Tetapkan kebijakan forward default untuk menerima, menjatuhkan atau menolak. Harap perhatikan bahwa # jika Anda mengubah ini, kemungkinan besar Anda ingin menyesuaikan aturan Anda default_forward_policy = "terima" 

Akhirnya, muat ulang firewall:

$ sudo UFW Reload

Langkah 5 - Mulai Layanan

Kami sekarang akan menggunakan SystemCTL untuk memulai server, meneruskan variabel yang berisi nama file konfigurasi kami ke unit layanan. Dengan menggunakan SystemD kita dapat melakukan ini dengan mengawali nilai dengan @ simbol. Misalnya:

$ sudo systemctl mulai openvpn@server

Pada titik ini server harus berjalan dan berjalan. Verifikasi dengan menjalankan

$ sudo systemctl is-active openvpn@server

Perintah harus mengembalikan "aktif".



Langkah 6 - Pengaturan Klien

Untuk setiap klien yang ingin kami gunakan, kami harus menghasilkan pasangan sertifikat/kunci, seperti yang kami lakukan di atas untuk server:

$ source vars && ./klien build-key

Sekarang kami memiliki dua opsi: kami dapat menyalin file yang diperlukan ke klien kami, atau kami dapat menghasilkan .ovpn file, di mana konten file tersebut disematkan. Kami akan berkonsentrasi pada opsi kedua.

Sama seperti kami melakukan sisi server, kami akan mengambil konfigurasi sampel sebagai titik awal kami. Mari kita buat direktori khusus dan salin template:

$ mkdir klien && cp/usr/share/doc/openvpn/contoh/sampel-config-files/klien.klien/klien conf.ovpn

Ikuti bagian yang sangat baik dari file, dan beradaptasi dengan opsi ke yang ditentukan dalam konfigurasi server (dalam kasus kami sudah selesai). Atur IP dan port server dengan memodifikasi pengaturan (baris 42):

Remote my-server-1 1194 

Di mana "my-server" harus diganti dengan IP server dan port harus diubah jika tidak menggunakan yang default. Berikutnya, Uncomment pada baris berikut (61,62):

# Downgrade Privileges Setelah Inisialisasi (Non-Windows saja); Pengguna Tidak Ada; Grup Nogroup 

Sekarang, kami akan mengganti referensi ke CA, sertifikat, kunci, parameter DH dan kunci TLS-Auth dengan konten sebenarnya dari file: dengan cara ini kami akan membuat konfigurasi embed, mudah diekspor yang mudah diekspor. Referensi Komentar Pertama (baris 88-90 dan 108)

#ca ca.Klien CRT #CERT.Klien CRT #Key.kunci #tls-auth ta.Kunci 1

Selanjutnya, salin konten file yang disebutkan, di antara tag yang sesuai. Konten Otoritas Sertifikat harus dimasukkan di antara tag, konten file sertifikat di dalam dan kunci di antara . Sama seperti sebuah contoh, pertimbangkan CA:

 # Ini dia konten CA.File CRT  

Untuk kunci TLS-Auth, sebaliknya kita akan melakukannya:

Key-Direction 1 # Konten TA.file kunci  

Akhirnya, cukup impor file di aplikasi klien Anda dan Anda harus siap untuk pergi.

Contoh Koneksi Android

Untuk terhubung ke server OpenVPN kami dari Android, kami akan menggunakan aplikasi OpenVPN resmi: OpenVPN Connect. Setelah diinstal dan diluncurkan, menu berikut akan muncul:

Menu Aplikasi Android OpenVPN



Ketuk, item terakhir, Profil OVPN

Dari pemilih file, navigasikan ke tempat di mana Anda menyimpan .file ovpn, dan pilih, dari ketuk "impor" di sudut kanan atas. Profil seharusnya diimpor dengan benar:

Impor Aplikasi OpenVPN Android
Sekarang, sama seperti sebelumnya, ketuk add, dan pada layar berikut mengaktifkan koneksi:

Aplikasi Android OpenVPN terhubung
Kesuksesan!

Tutorial Linux Terkait:

  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Ubuntu 20.04 trik dan hal -hal yang mungkin tidak Anda ketahui
  • Cara Mengatur Server OpenVPN di Ubuntu 20.04
  • Dasar Ubuntu 22.04 Pengaturan Koneksi Klien/Server OpenVPN
  • Ubuntu 20.04 Panduan
  • Ubuntu 20.04 Hadoop
  • 8 Lingkungan Desktop Ubuntu Terbaik (20.04 FOSSA FOCAL…
  • Daftar dan Instalasi Klien FTP di Ubuntu 20.04 Linux…
  • Manajer Jaringan Linux GUI