GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengatur Server dan Klien VPN Linux menggunakan OpenVPN

VPN adalah singkatan dari Virtual Private Network.

Virtual Private Network memungkinkan komputer untuk mengirim dan menerima data dari satu jaringan pribadi ke jaringan pribadi lain yang terhubung melalui jaringan publik (Internet).

Ini berguna bagi mereka yang berada di luar intranet perusahaan, dan ingin terhubung ke jaringan kantor dengan aman untuk mengakses server internal. VPN juga berguna saat Anda menghubungkan beberapa kantor cabang secara bersamaan.

Bahkan saat Anda tidak menghubungkan beberapa kantor cabang secara bersamaan, Anda masih dapat menggunakan pengaturan VPN untuk memungkinkan karyawan Anda terhubung dari jarak jauh dari laptop mereka ke komputer. pusat data dan mengakses sistem.

Terkadang perusahaan akan membeli leased line untuk membentuk WAN (Wide Area Network), dan berkomunikasi dengan cabang-cabangnya. Meskipun Leased line aman dan andal, biayanya mahal.

VPN mengisi celah dengan menyediakan koneksi virtual point-to-point melalui jaringan publik. VPN dapat berkembang untuk mengakomodasi lebih banyak pengguna di berbagai lokasi geografis dengan mudah.

Jenis VPN

Pada tingkat tinggi, berikut ini adalah dua jenis VPN:

  • Akses Jarak Jauh
  • Situs-Ke-Situs

Remote Access menghubungkan komputer individu ke jaringan melalui VPN. “Situs ke Situs” menghubungkan dua jaringan bersama-sama melalui VPN.

Apa itu OpenVPN

Dari orang OpenVPN:

OpenVPN adalah daemon VPN open source oleh James Yonan. OpenVPN adalah daemon VPN yang tangguh dan sangat fleksibel. OpenVPN mendukung keamanan SSL/TLS, bridging ethernet, TCP atau UDP tunnel transport melalui proxy atau NAT, dukungan untuk alamat IP dinamis dan DHCP, skalabilitas ke ratusan atau ribuan pengguna, dan portabilitas ke sebagian besar platform OS utama.

Tutorial ini menjelaskan proses penyiapan dan konfigurasi server dan klien OpenVPN untuk Akses Jarak Jauh.

Aku. Mengonfigurasi OpenVPN – Sisi Server

1. Instal OpenVPN

Instal paket openvpn di server dan mesin klien.

$ sudo apt-get install openvpn

Gunakan manajer paket masing-masing dari distribusi yang Anda kerjakan. Jika Anda menggunakan yum, lakukan hal berikut

$ yum install openvpn

2. Buat Direktori dan atur Variabel Env

Buat direktori di dalam /etc/openvpn dan salin easy-rsa isinya untuk itu. Ini dilakukan untuk memastikan bahwa perubahan yang dilakukan pada skrip tidak akan hilang saat paket ditingkatkan. Ubah pemiliknya sebagai pengguna saat ini sehingga pengguna saat ini memiliki izin untuk membuat file.

$ sudo mkdir /etc/openvpn/easy-rsa

$ sudo cp /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa

$ sudo chown -R $USER /etc/openvpn/easy-rsa/

Selanjutnya, Edit /etc/openvpn/easy-rsa/vars untuk menyesuaikan diri dengan lingkungan Anda.

export KEY_COUNTRY="IN"
export KEY_PROVINCE="TN"
export KEY_CITY="CHN"
export KEY_ORG="tgs"
export KEY_EMAIL="[email protected]"

3. Membuat CA – Otoritas Sertifikat (Sertifikat Root)

Langkah selanjutnya dalam membangun server openvpn adalah membuat Infrastruktur Kunci Publik sehingga server dan klien dapat mengotentikasi satu sama lain.

$ cd /etc/openvpn/easy-rsa/

$ source vars

$ ./clean-all

$ ln -s openssl-1.0.0.cnf openssl.cnf

$ ./build-ca

Generating a 1024 bit RSA private key
........++++++
......++++++
unable to write 'random state'
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [IN]:
State or Province Name (full name) [TN]:
Locality Name (eg, city) [CHN]:
Organization Name (eg, company) [tgs]:
Organizational Unit Name (eg, section) [changeme]:
Common Name (eg, your name or your server's hostname) [changeme]:
Name [changeme]:lakshmanan
Email Address [[email protected]]:[email protected]

Sekali ./build-ca selesai, Anda akan melihat file bernama “ca.key ” dan “ca.crt ” di dalam /etc/openvpn/easy-rsa/keys/

Ingat bahwa “.key ” file harus dijaga kerahasiaannya.

4. Membuat sertifikat untuk Server

Langkah selanjutnya adalah membuat sertifikat untuk server Openvpn kita.

$ /etc/openvpn/easy-rsa/build-key-server vpnserver
...
...

Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y

Perhatikan bahwa vpnserver adalah HOSTNAME server. Perintah ini akan mengambil input dari pengguna yang mirip dengan yang sebelumnya. Perintah ini akan membuat sertifikat dan file kunci untuk server.

5. Membuat sertifikat untuk klien

Klien VPN juga memerlukan sertifikat untuk mengautentikasi dengan server. Jika Anda ingin mengonfigurasi beberapa klien, Anda perlu membuat sertifikat untuk setiap klien secara terpisah.

$ ./build-key vpnclient1
...
...

Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y

vpnclient1 adalah nama host klien. Perintah ini akan membuat sertifikat dan file kunci untuk klien.

6. Buat parameter Diffie Hellman

$ ./build-dh

Setelah semua langkah di atas berhasil diselesaikan, Anda akan memiliki banyak file kunci dan sertifikat di dalam /etc/openvpn/easy-rsa/keys .

7. Salin sertifikat ke lokasi masing-masing

Kami telah membuat Sertifikat Root, Sertifikat Server, dan Sertifikat Klien. Kita perlu menyalinnya ke lokasi yang sesuai.

$ cd /etc/openvpn/easy-rsa/keys/

$ sudo cp ca.crt vpnserver.crt vpnserver.key dh1024.pem /etc/openvpn/

$ scp ca.crt vpnclient1.key  vpnclient1.crt root@vpnclient1:/etc/openvpn

Sekarang kami telah menyalin sertifikat klien dan kunci ke mesin klien. Ingatlah untuk menggunakan media yang aman seperti scp, saat menyalin file kunci.

8. Konfigurasi Server

OpenVPN menyediakan server.conf default. Anda dapat memodifikasinya sesuai kebutuhan.

$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/

$ sudo gzip -d /etc/openvpn/server.conf.gz

Edit “/etc/openvpn/server.conf “.

...
ca ca.crt
cert vpnserver.crt
key vpnserver.key
dh dh1024.pem
...

Sekarang mulai server OpenVPN:

$ sudo /etc/init.d/openvpn start
 * Starting virtual private network daemon(s)... 
 * Autostarting VPN 'server'

$ ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255

Secara default openVPN akan mencatat kesalahan dalam file syslog.

II. Mengonfigurasi OpenVPN – Sisi Klien

9. Siapkan File Konfigurasi Klien

Sekarang kita akan mengonfigurasi openVPN agar berfungsi sebagai klien. Ingat bahwa kami telah menginstal paket openvpn di klien, dan kami memiliki "ca.crt", "vpnclient1.key", vpnclient1.crt" di /etc/openvpn/

Salin contoh client.conf ke /etc/openvpn .

$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/

Edit /etc/openvpn/client.conf .

...
# Specify that this is openvpn client
client

remote vpnserver 1194

ca ca.crt

cert vpnclient1.crt

key vpnclient1.key
...

Sekarang mulai OpenVPN di klien

$ /etc/init.d/openvpn start
 * Starting virtual private network daemon(s)... 
 * Autostarting VPN 'client'

$ ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.6  P-t-P:10.8.0.5  Mask:255.255.255.255

10. Uji Pengaturan VPN

Ping vpnserver dari mesin klien untuk melihat apakah VPN berfungsi atau tidak.

$ ping 10.8.0.1

PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_req=1 ttl=64 time=2.14 ms

Jika Anda dapat melakukan ping, maka Anda telah melakukan pengaturan yang benar.

Harap perhatikan hal berikut:

  1. Pastikan klien dan server menggunakan protokol dan nomor port yang sama.
  2. Klien dan server harus menggunakan konfigurasi yang sama terkait beberapa parameter seperti ukuran kunci, kompresi, dll…
  3. Jika ada masalah, tingkatkan verbositas log dalam konfigurasi dan periksa file syslog untuk pemecahan masalah.

Linux
  1. Cara Setup NTP Server dan Client di Debian 9 Stretch Linux

  2. Cara Menginstal Dan Mengatur cPanel Di Server Linux

  3. Cara Setup dan Konfigurasi YPServ Linux NIS Server dan Client

  1. Cara Mengatur Server dan Klien NFS di Rocky/Alma Linux 8

  2. Cara Mengatur SSH Tanpa Kata Sandi di Linux

  3. Cara Menginstal dan Mengonfigurasi Server dan Klien NTP Linux

  1. Cara mengatur server dan klien FTP/SFTP di AlmaLinux

  2. Cara mengatur Samba Server dan klien di AlmaLinux

  3. Cara mengatur dan menggunakan Server FTP di Ubuntu Linux