VPN atau Virtual Private Network adalah jaringan pribadi yang aman melalui jaringan publik seperti internet. VPN adalah terowongan aman melalui internet yang melindungi lalu lintas data Anda dan meningkatkan privasi dan keamanan internet. Akses ke VPN dibatasi oleh metode autentikasi yang aman.
OpenVPN adalah perangkat lunak sumber terbuka untuk membangun jaringan pribadi virtual, ia menggunakan perpustakaan OpenSSL untuk mengenkripsi data terowongan dan mendukung transportasi UDP atau TCP. OpenVPN dapat menggunakan kunci yang dibagikan sebelumnya, berbasis sertifikat, dan mekanisme otentikasi berbasis nama pengguna/sandi.
Dalam tutorial ini, saya akan menunjukkan kepada Anda bagaimana menerapkan jaringan pribadi virtual menggunakan OpenVPNvpn di bawah sistem operasi Linux OpenSUSE Leap 42.1.
Prasyarat
- OpenSUSE Leap 42.1 - 64bit
- Hak istimewa root
- TUN/TAP diaktifkan
Langkah 1 - Memeriksa apakah TUN/TAP diaktifkan
Jika Anda ingin membuat VPN di server Anda, pastikan TUN/TAP diinstal dan diaktifkan. Anda dapat memeriksanya dengan perintah di bawah ini:
cat /dev/net/tun
Hasilnya seharusnya:
cat: /dev/net/tun: File descriptor in bad state
Langkah 2 - Instal OpenVPN
OpenVPN tersedia di repositori OpenSUSE. Anda dapat menginstalnya menggunakan perintah zypper:
zypper in openvpn
Langkah 3 - Penyiapan RSA Mudah
Selanjutnya, unduh easy-rsa untuk menghasilkan file sertifikat. Easy-rsa adalah utilitas untuk mengelola sertifikat, Anda dapat membuat otoritas sertifikat root dengannya dan meminta serta menandatangani sertifikat.
Buka direktori OpenVPN dan unduh easy-rsa dengan perintah wget:
cd /etc/openvpn/
wget https://github.com/OpenVPN/easy-rsa/archive/release/2.x.zip
Ekstrak arsip dan pindahkan direktori easy-rsa:
unzip 2.x.zip
mv easy-rsa-release-2.x/easy-rsa/ /etc/openvpn/
rm -rf easy-rsa-release-2.x/
Konfigurasikan Kunci
Buka direktori easy-rsa dan edit file vars untuk mengonfigurasi kunci dan sertifikat:
cd easy-rsa/2.0/
vim vars
Baris 53 - Jika Anda benar-benar paranoid, Anda dapat meningkatkan ukuran kunci.
export KEY_SIZE=2048
Baris 56 dan 59 - Dalam berapa hari kunci dan sertifikat akan kedaluwarsa.
export CA_EXPIRE=3650
export KEY_EXPIRE=3650
Baris 64 - 72 - Ubah nilai default dari informasi kunci dan sertifikat.
export KEY_COUNTRY="US"
export KEY_PROVINCE="California"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="[email protected]main"
export KEY_OU="MyOrganizationalUnit"
export KEY_NAME="EasyRSA"
Simpan file dan keluar.
Inisialisasi PKI
Selanjutnya, inisialisasi PKI (Public Key Infrastructure):
source ./vars && ./clean-all && ./build-ca
Kami akan meninggalkan nilai default, cukup tekan "Enter".
Buat Parameter Diffie Hellman
Jalankan perintah di bawah ini:
./build-dh
Anda akan melihat hasilnya:
Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
..................................
Buat Kunci Pribadi Server
Buat kunci pribadi dengan nama "server":
./build-key-server server
Tekan enter dan ketik "y" untuk mengonfirmasi pembuatan kunci.
Buat Kunci dan Sertifikat untuk Klien
Buat kunci klien dan sertifikat dengan nama "client1":
./build-key client1
Tekan enter dan ketik "y" untuk mengonfirmasi pembuatan kunci.
Kunci dan sertifikat telah dibuat di direktori "kunci". Sekarang buat salinan direktori "keys" dan letakkan di direktori "openvpn".
cp -r keys/ /etc/openvpn/
Langkah 4 - Konfigurasi OpenVPN
Pada langkah ini, kami akan mengonfigurasi OpenVPN untuk berjalan pada protokol UDP, menggunakan port 2034 untuk koneksi klien. Buat file konfigurasi baru server.conf di direktori OpenVPN.
cd /etc/openvpn/
vim server.conf
Rekatkan konfigurasi di bawah ini:
#change with your port
port 2034
#You can use udp or tcp
proto udp
# "dev tun" will create a routed IP tunnel.
dev tun
#Certificate Configuration
#ca certificate
ca /etc/openvpn/keys/ca.crt
#Server Certificate
cert /etc/openvpn/keys/server.crt
#Server Key and keep this is secret
key /etc/openvpn/keys/server.key
#See the size a dh key in /etc/openvpn/keys/
dh /etc/openvpn/keys/dh2048.pem
#Internal IP will get when already connect
server 10.10.2.0 255.255.255.0
#this line will redirect all traffic through our OpenVPN
push "redirect-gateway def1"
#Provide DNS servers to the client, you can use goolge DNS
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
#Enable multiple client to connect with same key
duplicate-cn
keepalive 20 60
comp-lzo
persist-key
persist-tun
daemon
#openvpn status log
status /var/log/openvpn/openvpn-status.log
#enable log
log-append /var/log/openvpn/openvpn.log
#Log Level
verb 3
Simpan file dan keluar dari editor.
Selanjutnya, buat direktori dan file baru untuk log openvpn:
mkdir -p /var/log/openvpn/
touch /var/log/openvpn/{openvpn,openvpn-status}.log
Langkah 5 - Konfigurasi SuSEfirewall2
SuSEfirewall2 adalah skrip untuk menghasilkan aturan iptables berdasarkan file "/etc/sysconfig/SuSEfirewall2". Kami akan menginstal SuSEfirewall2 dan kemudian mengkonfigurasi port untuk mengakses OpenVPN, kemudian kami akan mengaktifkan NAT dengan skrip iptables untuk OpenVPN.
Instal SuSEfirewall2 dengan perintah zypper:
zypper in SuSEfirewall2
Sekarang, masuk ke direktori sysconfig, dan edit file konfigurasi SuSEfirewall2:
cd /etc/sysconfig/
vim SuSEfirewall2
Jalur 134 - Aktifkan rute.
FW_ROUTE="yes"
Baris 253 - Aktifkan port TCP 22 untuk akses SSH dari luar jaringan.
FW_SERVICES_EXT_UDP="22"
Baris 267 - Aktifkan port udp untuk akses klien openvpn - port 2034.
FW_SERVICES_EXT_UDP="2034"
Baris 877 - Aktifkan aturan khusus SuSEfirewall2.
FW_CUSTOMRULES="/etc/sysconfig/scripts/SuSEfirewall2-custom"
Simpan dan keluar.
Selanjutnya, edit aturan khusus SuSEfirewall2 di direktori skrip.
cd /etc/sysconfig/scripts/
vim SuSEfirewall2-custom
Di dalam direktif "fw_custom_after_chain_creation", tempel aturan iptables baru untuk OpenVPN:
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.10.2.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.10.2.0/24 -o eth0 -j MASQUERADE
Simpan dan keluar.
Catatan:
IP 10.10.2.0/24 adalah jaringan dari file konfigurasi server.conf OpenVPN.
Sekarang kita dapat mengaktifkan penerusan dengan menambahkan baris konfigurasi baru ini ke file sysctl.conf.
vim /etc/sysctl.conf
Tempelkan konfigurasi di bawah ini:
net.ipv4.ip_forward = 1
Simpan dan keluar.
Catatan:
Jika Anda sudah memiliki baris dalam file, ubah nilainya dari "0" menjadi "1" alih-alih menambahkan baris baru.
Sekarang jalankan perintah di bawah untuk menerapkan perubahan konfigurasi.
sysctl -p
Mulai SuSEfirewall2 dan server OpenVPN:
systemctl start SuSEfirewall2
systemctl start [email protected]
Jika Anda memiliki kesalahan, Anda dapat melihat pesan kesalahan terperinci di log OpenVPN.
Tambahkan semua layanan ke startup sistem:
systemctl enable SuSEfirewall2
systemctl enable [email protected]
Langkah 5 - Konfigurasikan Klien
Unduh kunci klien dan sertifikat dari direktori kunci ke komputer lokal Anda. Anda dapat menggunakan perintah scp atau sftp, saya di sini menggunakan scp:
Perintah yang harus dijalankan di komputer lokal.
scp [email protected]:~/etc/openvpn/keys/ca.crt ~/myvpn/
scp [email protected]:~/etc/openvpn/keys/client1.crt ~/myvpn/
scp [email protected]:~/etc/openvpn/keys/client1.key ~/myvpn/
Di direktori myvpn, buat file konfigurasi baru untuk klien "client1.ovpn".
cd ~/myvpn/
vim client1.ovpn
Rekatkan konfigurasi di bawah ini:
client
dev tun
proto udp
#Server IP and Port
remote SERVERIP 2034
resolv-retry infinite
nobind
persist-key
persist-tun
mute-replay-warnings
ca ca.crt
cert client1.crt
key client1.key
ns-cert-type server
comp-lzo
Simpan dan keluar.
Untuk terhubung ke VPN kami, Anda dapat menginstal klien VPN atau jika Anda menggunakan Linux, Anda dapat menggunakan "Network-Manager". Jika Anda ingin menguji VPN dengan terminal, Anda dapat menggunakan perintah di bawah ini:
cd ~/myvpn/
sudo openvpn --config client1.ovpn