Memahami jails FreeBSD: containerisasi OS-level yang mengisolasi proses, filesystem, dan jaringan. Kalian akan membuat jail dengan jail(8), mengonfigurasi /etc/jail.conf, memakai jexec dan jls, lalu menggunakan ezjail dan bastille untuk manajemen modern termasuk jaringan VNET per jail.

Di episode 14 sebelumnya kalian sudah mengamankan komunikasi dengan OpenSSL dan SSH. Sekarang kita masuk ke salah satu fitur paling khas FreeBSD: jails — containerisasi native yang mengisolasi proses, filesystem, dan jaringan pada level OS. Setiap jail punya root, user, dan jaringan sendiri namun berbagi kernel dengan host — cara FreeBSD menjalankan banyak "server virtual" tanpa overhead virtualisasi penuh.
Jail membatasi proses di dalamnya ke lingkungan yang sudah ditentukan:
Info
Jails berbeda dengan Docker. Docker membungkus proses dalam namespace dan cgroups, sementara jail mengisolasi seluruh lingkungan sistem operasi dengan kernel yang sama. Jails lebih dekat dengan "VM ringan" daripada container ala Docker — stabil dan bisa di-boot seperti sistem kecil.
Jail paling sederhana butuh root filesystem sendiri. Cara umum menyediakannya: menggunakan base system melalui bsdinstall atau template, atau berbagi read-only dengan mount:
mkdir -p /usr/jails/www
bsdinstall jail /usr/jails/wwwbsdinstall jail menginstal base system baru ke direktori jail — mirip menginstal FreeBSD mini untuk jail tersebut.
Jail dikonfigurasi di /etc/jail.conf:
www {
host.hostname = "www.example.local";
ip4.addr = "192.168.1.20";
path = "/usr/jails/www";
exec.start = "/bin/sh /etc/rc";
exec.consolelog = "/var/log/jail_www_console.log";
}Dengan jail.conf siap, jalankan dan periksa:
service jail start www
jls
jexec www ps auxjls menampilkan semua jail aktif beserta JID dan IP-nya. jexec menjalankan perintah di dalam jail — cara masuk "ke dalam" lingkungan tersebut.
Untuk masuk sebagai root di dalam jail:
jexec www /bin/shezjail menyederhanakan pembuatan banyak jail dengan template:
pkg install ezjail
sysrc ezjail_enable="YES"
ezjail-admin installBuat jail dari template:
ezjail-admin create web01 "192.168.1.21"
ezjail-admin start web01
ezjail-admin console web01ezjail menangani pembuatan base jail, cloning, dan manajemen harian dengan perintah yang singkat.
Bastille adalah generasi terbaru — CLI modern, dukungan ZFS, template, dan networking yang fleksibel:
pkg install bastille
sysrc bastille_enable="YES"
service bastille startDownload base system dan buat container:
bastille bootstrap 15.1-RELEASE
bastille create web02 15.1-RELEASE 192.168.1.22
bastille start web02
bastille console web02Success
Bastille membawa jails ke tingkat modern: snapshot ZFS otomatis, template untuk meng-rollout lingkungan yang seragam, dan networking VNET yang mudah. Untuk lab homelab maupun produksi, Bastille adalah titik awal yang sangat direkomendasikan.
Dengan mode default, jail berbagi stack jaringan host dan hanya punya IP sendiri pada interface host. Konfigurasi ip4.addr pada jail.conf adalah bentuk ini — sederhana dan cukup untuk sebagian besar kasus.
VNET memberi setiap jail stack jaringan sendiri lengkap dengan interface virtualnya:
vnet;
vnet.interface = "epair0b";
exec.prestart = "ifconfig epair0a create";
exec.prestart += "ifconfig epair0a up";
exec.poststart = "ifconfig bridge0 addm epair0a";Dengan VNET, jail bisa punya interface sendiri, routing sendiri, dan bahkan menjalankan firewall sendiri — isolasi jaringan yang benar-benar penuh.
Warning
VNET memberi kekuatan besar tapi juga kompleksitas: interface epair perlu dihubungkan ke bridge host, dan routing di dalam jail harus dikonfigurasi sendiri. Mulailah dari shared networking, lalu naik ke VNET saat kebutuhan isolasi meningkat.
| Mode | Kelebihan | Kekurangan |
|---|---|---|
| Shared (IP di host) | Sederhana, ringan | Isolasi jaringan terbatas |
| VNET | Isolasi penuh, firewall sendiri | Konfigurasi lebih kompleks |
rctl bila perlu.jls
jexec www zfs listDi episode 15 ini kalian sudah memahami jails FreeBSD: konsep isolasi OS-level, pembuatan dengan jail(8), konfigurasi /etc/jail.conf, perintah jls dan jexec, serta manajemen modern dengan ezjail dan bastille termasuk networking shared dan VNET.
Inti yang harus dibawa pulang:
/etc/jail.conf; kelola dengan service jail.jls memeriksa jail aktif; jexec masuk ke dalamnya.Di episode 16 selanjutnya kita akan membahas bhyve & virtualization — hypervisor tipe-2 bawaan FreeBSD, penggunaan bhyve dan bhyvectl, frontend vm-bhyve, serta praktik menginstal VM Linux dan FreeBSD dengan UEFI, storage virtio, dan networking tap/bridge.