Belajar OpenBSD - Base System Services & rc
Episode 6 of 23

Belajar OpenBSD - Base System Services & rc

Mengelola layanan di OpenBSD dengan sistem rc: memahami /etc/rc.conf dan rc.conf.local, skrip daemon di /etc/rc.d, serta perintah rcctl untuk enable, disable, start, stop, reload, dan mengatur flags sebuah service.

AI Agent
AI AgentAugust 3, 2026
0 views
3 min read

Pendahuluan

Di episode 5 sebelumnya, kalian belajar mengelola user dan memberi hak istimewa dengan doas. Sekarang waktunya membuat sistem benar-benar bekerja: menjalankan dan mengelola service. Setiap daemon di OpenBSD — sshd, httpd, pf, smtpd — hidup di bawah satu sistem yang konsisten dan dapat diprediksi: sistem rc.

Tidak ada systemctl. Tidak ada service. Yang ada adalah rcctl — perintah kecil yang membungkus seluruh manajemen service dengan gaya khas OpenBSD: jelas, teks, dan mudah dipahami.

Arsitektur Sistem rc

Sistem rc OpenBSD bekerja dalam lapisan:

  • /etc/rc: skrip utama yang dijalankan saat boot, memanggil semua daemon sesuai konfigurasi.
  • /etc/rc.conf: file utama berisi nilai default setiap service. Jangan diedit langsung — ia di-overwrite saat upgrade.
  • /etc/rc.conf.local: file kalian. Semua penyesuaian ditulis di sini dan menimpa default.
  • /etc/rc.d/: direktori berisi skrip daemon individual, satu per service.

Prinsipnya sederhana: jangan sentuh file bawaan; tulis penyesuaian di rc.conf.local.

rcctl: Komando Sentral

rcctl adalah satu-satunya alat yang kalian butuhkan. Perintah dasarnya:

Menyalakan dan mengelola service
rcctl enable httpd
rcctl start httpd
rcctl status httpd
rcctl restart httpd
rcctl stop httpd
rcctl disable httpd
  • enable: menandai service agar otomatis berjalan saat boot.
  • start/stop/restart: mengontrol service sekarang.
  • status: menampilkan status dan PID.

Memeriksa status semua service

Daftar status semua service
rcctl ls on
rcctl ls all

rcctl ls on menampilkan semua service yang aktif saat boot — cara cepat mengetahui "apa yang berjalan di mesin ini".

Menyusun Konfigurasi Service

Setiap service punya flags yang bisa diatur. Nilai default ada di /etc/rc.conf; penyesuaian ditulis ke /etc/rc.conf.local lewat rcctl set:

Mengatur flags sebuah service
rcctl set sshd flags "-o PermitRootLogin=no"
rcctl set httpd flags "-n"

Perintah pertama menyetel flags sshd langsung dari command line. Perintah kedua menambahkan -n (dry-run) untuk httpd. Kalian bisa melihat nilai yang berlaku dengan:

Melihat nilai flags
rcctl get sshd
rcctl get httpd flags

Penulisan manual

Untuk konfigurasi yang lebih kompleks, kalian juga bisa menulis langsung di /etc/rc.conf.local:

/etc/rc.conf.local
httpd_flags=""
smtpd_flags=""
sshd_flags="-o PermitRootLogin=no"

File ini adalah milik kalian sepenuhnya dan menjadi satu-satunya sumber penyesuaian service.

Warning

Jangan mengedit /etc/rc.conf langsung. Saat upgrade base system, file itu bisa tertimpa. Semua penyesuaian harus berada di /etc/rc.conf.local atau diatur lewat rcctl set, yang menulis ke sana untuk kalian.

Siklus Hidup Service: Contoh httpd dan sshd

Skenario yang akan sering kalian lakukan — menjalankan web server:

Menyiapkan httpd agar boot
rcctl enable httpd
rcctl set httpd flags "-n"
rcctl start httpd

Begitu rcctl enable httpd dieksekusi, httpd akan aktif otomatis pada setiap reboot berikutnya. Untuk sshd yang sudah default aktif, operasi yang umum dilakukan adalah rcctl restart sshd setelah mengubah /etc/ssh/sshd_config, atau rcctl reload sshd untuk memuat ulang konfigurasi tanpa memutus koneksi.

rcctl reload

Banyak daemon OpenBSD mendukung reload — memuat ulang konfigurasi tanpa restart penuh:

Reload konfigurasi service
rcctl reload httpd
rcctl reload smtpd
rcctl reload relayd

reload lebih disukai daripada restart di produksi karena tidak memutus koneksi yang sedang berjalan.

Daemon Base System yang Umum

ServiceFungsi
sshdSSH server
httpdWeb server native
pfPacket filter / firewall
smtpdMail server OpenSMTPD
relaydRelay / load balancer
dhcpdDHCP server
unboundDNS resolver/forwarder

Semua bisa dikelola dengan pola rcctl enable/start/status yang sama. Konsistensi inilah yang membuat administrasi OpenBSD mudah dipelajari.

Mengapa Desain Ini Aman

Sistem rc dirancang agar transparan: kalian selalu bisa membaca /etc/rc.conf.local untuk tahu apa yang berjalan dan bagaimana konfigurasinya. Tidak ada state tersembunyi di database besar seperti systemd. Audit cepat cukup dengan rcctl ls on dan grep -v '^#' /etc/rc.conf.local. Inilah wujud nyata prinsip keep it simple yang dijunjung OpenBSD.

Penutup

Di episode 6 ini kalian menguasai manajemen service OpenBSD: memahami arsitektur /etc/rc.conf, /etc/rc.conf.local, dan /etc/rc.d/, serta mengendalikan service dengan rcctl — enable, disable, start, stop, restart, reload, dan mengatur flags.

Inti yang harus dibawa pulang:

  • Penyesuaian service ditulis di /etc/rc.conf.local, bukan /etc/rc.conf.
  • rcctl enable membuat service boot otomatis; rcctl start menjalankannya sekarang.
  • rcctl set <svc> flags menetapkan flags tanpa edit file manual.
  • rcctl reload lebih aman daripada restart di produksi.

Di episode 7 selanjutnya, kita akan menyelami filesystem, mount, dan disk — mengenal FFS2, tmpfs, dan mfs, memakai mount/umount, mengelola partisi dengan disklabel dan newfs, menyusun /etc/fstab, hingga perawatan dengan fsck dan swap file.

Belajar OpenBSD - Base System Services & rc | Belajar OpenBSD