Episode ini membangun VPN dan tunneling di Alpine: WireGuard dengan modul kernel native, OpenVPN, IPsec memakai strongSwan, serta SSH tunneling dan mesh WireGuard ala Tailscale. Kalian juga mengenal netns untuk isolasi jaringan.

Alpine adalah distro favorit untuk router dan gateway, dan episode 18 memanfaatkan posisi itu untuk membangun koneksi pribadi antar jaringan. Kalian akan membangun WireGuard yang berjalan di kernel, mengonfigurasi OpenVPN dan IPsec dengan strongSwan, serta memakai SSH tunneling dan mesh ala Tailscale.
Materi ini melengkapi firewall nftables dari episode 10: VPN dan firewall bekerja bersama. Traffic terenkripsi masuk lewat port yang dibuka firewall, lalu di-routing ke jaringan internal.
WireGuard berjalan sebagai modul kernel dan menyediakan antarmuka virtual:
apk add wireguard-tools
modprobe wireguard
lsmod | grep wireguardBuat pasangan kunci:
wg genkey | tee privatekey | wg pubkey > publickey
chmod 600 privatekeyAtur antarmuka WireGuard di server:
ip link add dev wg0 type wireguard
wg set wg0 listen-port 51820 \
private-key /root/privatekey \
peer <PUBLIC_KEY_CLIENT> \
allowed-ips 10.10.0.2/32
ip addr add 10.10.0.1/24 dev wg0
ip link set wg0 upwg set wg0 listen-port 51820 mengonfigurasi port dan peer WireGuard. Untuk persistensi, tulis konfigurasi di /etc/wireguard/wg0.conf dan gunakan wg-quick:
vi /etc/wireguard/wg0.conf
wg-quick up wg0
rc-service wg-quick startBuka port di firewall nft:
nft add rule inet filter input udp dport 51820 acceptOpenVPN adalah VPN berbasis TLS yang sudah matang:
apk add openvpn
rc-service openvpn start
rc-update add openvpn defaultKonfigurasi dasar server di /etc/openvpn/server.conf:
port 1194
proto udp
dev tun
server 10.8.0.0 255.255.255.0
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
auth SHA256Jalankan server dengan file konfigurasi:
openvpn --config /etc/openvpn/server.conf --daemonUntuk production, persiapkan CA dan sertifikat dengan easy-rsa yang tersedia di repository.
strongSwan mengimplementasikan protokol IPsec/IKEv2:
apk add strongswan
rc-service ipsec start
rc-update add ipsec default
ipsec versionKonfigurasi koneksi di /etc/ipsec.conf:
conn server
left=%defaultroute
leftcert=serverCert.pem
right=%any
rightauth=eap-mschapv2
auto=addMuat dan bangun koneksi:
ipsec reload
ipsec statusall | head -20ipsec statusall menampilkan status semua SA IPsec yang aktif.
Tunneling SSH memberikan koneksi aman tanpa infrastruktur VPN:
ssh -L 5432:localhost:5432 arman@db.internal
ssh -N -D 1080 arman@gateway.internalssh -L 5432:localhost:5432 meneruskan port lokal ke database remote melalui SSH.
Untuk mesh sederhana antar mesin, Tailscale menyediakan WireGuard mesh otomatis:
apk add tailscale
rc-service tailscaled start
tailscale up
tailscale statustailscale up menghubungkan mesin ke jaringan mesh akun kalian, dan tailscale status menampilkan peer yang terhubung.
Network namespace mengisolasi stack jaringan antar proses:
ip netns add test
ip netns exec test ip addr show
ip netns del testip netns exec test ip addr show menjalankan perintah di dalam namespace yang terisolasi — konsep dasar yang dipakai container.
Tip
Untuk koneksi site-to-site yang simpel dan cepat, WireGuard hampir selalu pilihan terbaik: berjalan di kernel, konfigurasi singkat, dan overhead kecil. OpenVPN dan IPsec unggul untuk kebutuhan enterprise dengan integrasi sertifikat.
Episode 18 membangun VPN dan tunneling di Alpine: WireGuard native dengan modul kernel, OpenVPN berbasis TLS, IPsec dengan strongSwan, SSH tunneling, mesh WireGuard ala Tailscale, dan pengenalan netns.
Inti yang harus dibawa pulang:
Di episode 19 selanjutnya kita akan membahas performance dan resource optimization — memanfaatkan footprint kecil musl dan BusyBox, tuning kernel dengan sysctl, pengelolaan memori, serta monitoring dengan top, htop, free, dan df.