Membuat VPN Server Sendiri

Membuat VPN Server Sendiri

Membuat VPN Server Sendiri

Pendahuluan

Virtual Private Network (VPN) memungkinkan koneksi aman antara perangkat dan jaringan internal melalui internet.
Tutorial ini mengajarkan cara membangun VPN server OpenVPN pada VPS Linux, lengkap dengan pembuatan sertifikat, konfigurasi firewall, dan panduan keamanan produksi.

Prasyarat & Persiapan

Item Keterangan
VPS Ubuntu 22.04 LTS (atau Debian 12)
Root Access SSH key atau password
Domain (Opsional) untuk sertifikat Let’s Encrypt
Tools - ChatGPT Plus (ai-chat) untuk membantu menulis konfigurasi: https://tools.jartekindo.com/tool/chatgpt-plus/
- Notion AI (ai-writing) untuk menyiapkan dokumentasi: https://tools.jartekindo.com/tool/notion-ai/

Langkah 1: Update Sistem

sudo apt update && sudo apt upgrade -y

Langkah Demi Langkah

1. Instalasi OpenVPN dan EasyRSA

sudo apt install -y openvpn easy-rsa

2. Persiapan PKI (Public Key Infrastructure)

make-cadir ~/openvpn-ca
cd ~/openvpn-ca

Edit vars:

nano vars

Ubah baris berikut sesuai kebutuhan:

export KEY_COUNTRY="ID"
export KEY_PROVINCE="DKI"
export KEY_CITY="Jakarta"
export KEY_ORG="Jartekindo"
export KEY_EMAIL="admin@jartekindo.com"
export KEY_OU="IT"

3. Build CA dan Server Certificate

./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa gen-req server nopass
./easyrsa sign-req server server

4. Generate DH Parameters & HMAC Key

openssl dhparam -out dh.pem 2048
openvpn --genkey --secret ta.key

5. Konfigurasi Server OpenVPN

Buat file /etc/openvpn/server.conf:

sudo nano /etc/openvpn/server.conf

Isi dengan:

port 1194
proto udp
dev tun
ca /home/ubuntu/openvpn-ca/pki/ca.crt
cert /home/ubuntu/openvpn-ca/pki/issued/server.crt
key /home/ubuntu/openvpn-ca/pki/private/server.key
dh /home/ubuntu/openvpn-ca/pki/dh.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
tls-auth /home/ubuntu/openvpn-ca/pki/ta.key 0
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3

6. Konfigurasi Firewall

sudo ufw allow 1194/udp
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status

Enable IP forwarding:

sudo nano /etc/sysctl.conf

Tambahkan baris:

net.ipv4.ip_forward=1

Aktifkan:

sudo sysctl -p

7. Mulai dan Aktifkan OpenVPN

sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server
sudo systemctl status openvpn@server

8. Generate Client Configuration

cd ~/openvpn-ca
./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1

Buat file client1.ovpn:

cat > client1.ovpn <<EOF
client
dev tun
proto udp
remote YOUR_SERVER_IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
auth SHA256
key-direction 1
<ca>
$(cat ~/openvpn-ca/pki/ca.crt)
</ca>
<cert>
$(cat ~/openvpn-ca/pki/issued/client1.crt)
</cert>
<key>
$(cat ~/openvpn-ca/pki/private/client1.key)
</key>
<tls-auth>
$(cat ~/openvpn-ca/pki/ta.key)
</tls-auth>
EOF

Transfer client1.ovpn ke perangkat klien dan jalankan:

sudo openvpn --config client1.ovpn

Tips Optimasi & Keamanan

Praktik Penjelasan
TLS Auth Menambahkan tls-auth mencegah serangan DoS.
Cipher & Auth Gunakan AES-256-CBC + SHA256 untuk keamanan tinggi.
IP Forwarding Pastikan hanya IP tertentu yang dapat mengakses VPN.
Fail2Ban Instal fail2ban untuk melindungi port OpenVPN.
Monitoring Gunakan systemctl status dan log /var/log/syslog.

Menggunakan ChatGPT Plus

Buat skrip konfigurasi atau troubleshoot error dengan bantuan ChatGPT Plus: https://tools.jartekindo.com/tool/chatgpt-plus/

Troubleshooting Error Umum

Error Penyebab Solusi
TLS Error: TLS handshake failed Port 1194 diblokir Pastikan firewall mengizinkan UDP 1194
Cannot resolve host DNS tidak terkonfigurasi Tambahkan DNS pada push "dhcp-option DNS"
OpenVPN service failed to start File konfigurasi salah Periksa sintaks di /etc/openvpn/server.conf
IP forwarding not enabled net.ipv4.ip_forward = 0 Set ke 1 dan reload sysctl -p

Kesimpulan

Dengan langkah-langkah di atas, Anda dapat memiliki VPN server OpenVPN yang aman dan dapat diandalkan di VPS Linux. Selalu perbarui paket, monitor log, dan gunakan praktik keamanan terbaik untuk menjaga jaringan tetap terlindungi. Selamat mencoba!

🏷️ Topik Terkait: