OpenVPN membuat terowongan terenkripsi antara dua titik, mencegah pihak ketiga mengakses lalu lintas jaringan Anda. Dengan menyiapkan server jaringan pribadi virtual (VPN), Anda menjadi penyedia VPN Anda sendiri. Banyak layanan VPN populer sudah menggunakan OpenVPN, jadi mengapa menghubungkan koneksi Anda ke penyedia tertentu jika Anda dapat memiliki kendali penuh?
Artikel pertama dalam seri ini menyiapkan server untuk VPN Anda, dan artikel kedua menunjukkan cara menginstal dan mengkonfigurasi perangkat lunak server OpenVPN. Artikel ketiga ini menunjukkan cara memulai OpenVPN dengan autentikasi.
Selengkapnya tentang keamanan
- Panduan pengkodean defensif
- Webinar:Mengotomatiskan keamanan sistem dan kepatuhan dengan sistem operasi standar
- 10 lapisan keamanan kontainer Linux
- Buku mewarnai SELinux
- Artikel keamanan lainnya
Untuk menyiapkan server OpenVPN, Anda harus:
- Buat file konfigurasi.
- Setel
sysctl
nilainet.ipv4.ip_forward = 1
untuk mengaktifkan perutean. - Siapkan kepemilikan yang sesuai untuk semua file konfigurasi dan otentikasi untuk menjalankan daemon server OpenVPN di bawah akun non-root.
- Setel OpenVPN untuk memulai dengan file konfigurasi yang sesuai.
- Konfigurasikan firewall Anda.
File konfigurasi
Anda harus membuat file konfigurasi server di /etc/openvpn/server/
. Anda dapat memulai dari awal jika mau, dan OpenVPN menyertakan beberapa contoh file konfigurasi untuk digunakan sebagai titik awal. Lihat di /usr/share/doc/openvpn/sample/sample-config-files/
untuk melihat semuanya.
Jika Anda ingin membuat file konfigurasi secara manual, mulailah dengan server.conf
atau roadwarrior-server.conf
(jika sesuai), dan tempatkan file konfigurasi Anda di /etc/openvpn/server
. Kedua file dikomentari secara ekstensif, jadi baca komentar dan putuskan mana yang paling masuk akal untuk situasi Anda.
Anda dapat menghemat waktu dan kejengkelan dengan menggunakan template file konfigurasi server dan klien saya yang sudah dibuat sebelumnya dan sysctl
file untuk mengaktifkan perutean jaringan. Konfigurasi ini juga mencakup penyesuaian untuk menghubungkan dan memutuskan log. Itu menyimpan log di server OpenVPN di /etc/openvpn/server/logs
.
Jika Anda menggunakan template saya, Anda harus mengeditnya untuk menggunakan alamat IP dan nama host Anda.
Untuk menggunakan templat konfigurasi bawaan, skrip, dan sysctl
untuk mengaktifkan penerusan IP, unduh skrip saya:
$ curl \
https://www.dgregscott.com/ovpn/OVPNdownloads.sh > \
OVPNdownloads.sh
Baca skrip untuk mendapatkan ide tentang apa yang dilakukannya. Berikut ini ikhtisar singkat tentang tindakannya:
- Membuat direktori yang sesuai di server OpenVPN Anda
- Mengunduh template file konfigurasi server dan klien dari situs web saya
- Mengunduh skrip khusus saya dan menempatkannya ke direktori yang benar dengan izin yang benar
- Unduhan
99-ipforward.conf
dan letakkan di/etc/sysctl.d
untuk mengaktifkan penerusan IP pada boot berikutnya - Menyiapkan kepemilikan untuk semua yang ada di
/etc/openvpn
Setelah Anda puas bahwa Anda memahami apa yang dilakukan skrip, buat skrip tersebut dapat dieksekusi dan jalankan:
$ chmod +x OVPNdownloads.sh
$ sudo ./OVPNdownloads.sh
Berikut adalah file yang disalinnya (perhatikan kepemilikan file):
$ ls -al -R /etc/openvpn
/etc/openvpn:
total 12
drwxr-xr-x. 4 openvpn openvpn 34 Apr 6 20:35 .
drwxr-xr-x. 139 root root 8192 Apr 6 20:35 ..
drwxr-xr-x. 2 openvpn openvpn 33 Apr 6 20:35 client
drwxr-xr-x. 4 openvpn openvpn 56 Apr 6 20:35 server
/etc/openvpn/client:
total 4
drwxr-xr-x. 2 openvpn openvpn 33 Apr 6 20:35 .
drwxr-xr-x. 4 openvpn openvpn 34 Apr 6 20:35 ..
-rw-r--r--. 1 openvpn openvpn 1764 Apr 6 20:35 OVPNclient2020.ovpn
/etc/openvpn/server:
total 4
drwxr-xr-x. 4 openvpn openvpn 56 Apr 6 20:35 .
drwxr-xr-x. 4 openvpn openvpn 34 Apr 6 20:35 ..
drwxr-xr-x. 2 openvpn openvpn 59 Apr 6 20:35 ccd
drwxr-xr-x. 2 openvpn openvpn 6 Apr 6 20:35 logs
-rw-r--r--. 1 openvpn openvpn 2588 Apr 6 20:35 OVPNserver2020.conf
/etc/openvpn/server/ccd:
total 8
drwxr-xr-x. 2 openvpn openvpn 59 Apr 6 20:35 .
drwxr-xr-x. 4 openvpn openvpn 56 Apr 6 20:35 ..
-rwxr-xr-x. 1 openvpn openvpn 917 Apr 6 20:35 client-connect.sh
-rwxr-xr-x. 1 openvpn openvpn 990 Apr 6 20:35 client-disconnect.sh
/etc/openvpn/server/logs:
total 0
drwxr-xr-x. 2 openvpn openvpn 6 Apr 6 20:35 .
drwxr-xr-x. 4 openvpn openvpn 56 Apr 6 20:35 ..
Berikut 99-ipforward.conf
berkas:
# Turn on IP forwarding. OpenVPN servers need to do routing
net.ipv4.ip_forward = 1
Edit OVPNserver2020.conf
dan OVPNclient2020.ovpn
untuk memasukkan alamat IP Anda. Juga, edit OVPNserver2020.conf
untuk memasukkan nama sertifikat server Anda dari sebelumnya. Nanti, Anda akan mengganti nama dan mengedit salinan OVPNclient2020.ovpn
untuk digunakan dengan komputer klien Anda. Blok yang dimulai dengan ***?
menunjukkan tempat untuk mengedit.
Kepemilikan file
Jika Anda menggunakan skrip otomatis dari situs web saya, kepemilikan file sudah ada. Jika tidak, Anda harus memastikan bahwa sistem Anda memiliki pengguna bernama openvpn
itu adalah anggota grup bernama openvpn
. Anda harus mengatur kepemilikan semuanya di /etc/openvpn
kepada pengguna dan grup tersebut. Aman untuk melakukan ini jika Anda tidak yakin apakah pengguna dan grup sudah ada karena useradd
akan menolak untuk membuat pengguna dengan nama yang sama dengan yang sudah ada:
$ sudo useradd openvpn
$ sudo chown -R openvpn.openvpn /etc/openvpn
Firewall
Jika Anda memutuskan untuk tidak menonaktifkan layanan firewalld pada langkah 1, maka layanan firewall server Anda mungkin tidak mengizinkan lalu lintas VPN secara default. Menggunakan firewall-cmd
perintah, Anda dapat mengaktifkan layanan OpenVPN, yang membuka port yang diperlukan dan merutekan lalu lintas seperlunya:
$ sudo firewall-cmd --add-service openvpn --permanent
$ sudo firewall-cmd --reload
Tidak perlu tersesat dalam labirin iptables!
Mulai server Anda
Anda sekarang dapat memulai server OpenVPN Anda. Agar dimulai secara otomatis setelah reboot, gunakan tombol enable
subperintah dari systemctl
:
systemctl enable --now [email protected]
Langkah terakhir
Artikel keempat dan terakhir dalam artikel ini akan menunjukkan cara mengatur klien untuk terhubung ke OpenVPN Anda dari jauh.
Artikel ini didasarkan pada blog D. Greg Scott dan digunakan kembali dengan izin.