Lompat ke konten

Materi Administrasi Linux Debian Kelas XII TJKT

Materi Administrasi Linux Debian Kelas XII TJKT ini membekali siswa kelas XII TJKT untuk membaca struktur konfigurasi Debian, mengelola layanan dengan systemd, menganalisis log dengan journalctl, dan memperbaiki gangguan server secara sistematis.

Tujuan pembelajaran dan prasyarat

Setelah mempelajari materi administrasi Linux Debian lanjutan ini, siswa kelas XII TJKT mampu:

  1. Menjelaskan fungsi direktori dan file konfigurasi utama di /etc pada Debian.
  2. Mengubah konfigurasi dengan aman: backup, uji sintaks, terapkan, lalu verifikasi.
  3. Mengelola layanan dengan systemctl (start, stop, restart, reload, enable, disable, status).
  4. Membaca dan menyaring log sistem dengan journalctl dan file di /var/log.
  5. Mendiagnosis serta memperbaiki layanan yang gagal dengan alur troubleshooting yang runtut.

Prasyarat yang perlu disiapkan:

  • Debian 12 (Bookworm) atau Debian 13 (Trixie) yang berjalan di VirtualBox, VMware, atau mesin fisik.
  • Akun dengan hak sudo atau akses root.
  • Perintah dasar: ls, cd, cp, nano, dan apt.
  • Konsep dasar jaringan: alamat IP, gateway, DNS, dan nomor port.

Struktur konfigurasi Debian

Hampir seluruh konfigurasi sistem Debian berupa file teks di direktori /etc. Dengan memahami peta direktori ini, administrator langsung tahu ke mana harus melihat ketika sebuah layanan berperilaku aneh.

PathFungsiDipakai saat
/etc/hostname, /etc/hostsNama host dan pemetaan nama ke IP lokalMengganti nama server, menguji nama tanpa DNS
/etc/network/interfacesIP statis atau DHCP (ifupdown)Mengatur alamat IP server
/etc/resolv.confAlamat DNS resolverNama domain tidak bisa di-resolve
/etc/apt/sources.list dan /etc/apt/sources.list.d/Repositori paketapt update gagal; instalasi baru Debian 13 umumnya memakai format deb822 (debian.sources)
/etc/fstabPartisi yang di-mount saat bootMenambah disk, boot masuk emergency mode
/etc/passwd, /etc/shadow, /etc/groupAkun, hash kata sandi, dan grupManajemen pengguna
/etc/sudoers, /etc/sudoers.d/Hak sudo (edit dengan visudo)Memberi hak administrator
/etc/ssh/sshd_configKonfigurasi server SSHAkses remote
/etc/systemd/system/Unit file buatan admin dan overrideMembuat atau mengubah layanan
/etc/systemd/journald.confPenyimpanan log journaldLog persisten, batas ukuran log
/etc/rsyslog.conf, /etc/logrotate.confAturan log teks dan rotasinyaMengatur isi /var/log
/etc/apache2/, /etc/bind/, /etc/dhcp/Konfigurasi web, DNS, dan DHCP serverLayanan jaringan

Pola yang perlu dikenali

  • Direktori berakhiran .d (misalnya /etc/ssh/sshd_config.d/) menampung potongan konfigurasi yang dibaca berurutan. Ini cara paling rapi menambah pengaturan tanpa menyentuh file utama.
  • Apache memakai sites-available dan sites-enabled; situs diaktifkan dengan a2ensite.
  • File konfigurasi yang Anda ubah dilindungi saat upgrade paket: dpkg akan bertanya apakah versi Anda dipertahankan.
  • /etc/default/ berisi variabel yang dibaca skrip layanan.

Alur aman mengubah konfigurasi

Terapkan lima langkah ini pada setiap perubahan, supaya kesalahan ketik tidak menjatuhkan layanan:

  1. Backup file yang akan diubah.
  2. Ubah dengan editor.
  3. Uji sintaks sebelum diterapkan.
  4. Terapkan dengan reload atau restart.
  5. Verifikasi status dan log.
cp -a /etc/ssh/sshd_config /etc/ssh/sshd_config.bak        # 1. backup
sudoedit /etc/ssh/sshd_config                              # 2. ubah
sudo sshd -t                                               # 3. uji sintaks
sudo systemctl reload ssh                                  # 4. terapkan
systemctl status ssh --no-pager                sudo        # 5. verifikasi
diff -u /etc/ssh/sshd_config.bak /etc/ssh/sshd_config      # catat apa yang berubah

Setiap layanan punya perintah uji sendiri: apache2ctl configtest, named-checkconf, nginx -t, dan visudo -c.

Pengelolaan layanan dengan systemd

systemd adalah manajer sistem dan layanan yang berjalan sebagai proses pertama (PID 1) di Debian. Ia menjalankan layanan saat boot, memantaunya, dan mencatat keluarannya ke journal. Objek yang dikelola disebut unit: .service (layanan), .socket, .timer (penjadwal pengganti cron), .mount, dan .target (kelompok unit, mirip runlevel).

Perintah systemctl yang wajib dikuasai

PerintahFungsi
systemctl status sshStatus, PID, dan beberapa baris log terakhir
systemctl start ssh / stop ssh / restart sshMenjalankan, menghentikan, memulai ulang layanan
systemctl reload sshMembaca ulang konfigurasi tanpa memutus layanan (jika didukung)
systemctl enable --now sshAktif otomatis saat boot sekaligus dijalankan sekarang
systemctl disable sshTidak lagi berjalan otomatis saat boot
systemctl is-active ssh / is-enabled sshCek singkat, cocok untuk skrip
systemctl list-units --type=serviceDaftar layanan yang dimuat
systemctl --failedHanya unit yang gagal
systemctl cat sshMenampilkan unit file lengkap beserta override
systemctl list-dependencies sshPohon dependensi unit
systemctl mask namaMemblokir unit sepenuhnya agar tidak bisa dijalankan

Di Debian nama unit SSH adalah ssh.service (bukan sshd). Gunakan sudo untuk perintah yang mengubah keadaan layanan.

Membaca keluaran status

Perintah systemctl status memuat tiga hal penting: baris Loaded (lokasi unit file dan apakah enabled), baris Active (keadaan sekarang), dan potongan log di bagian bawah.

Keadaan ActiveArtinya
active (running)Proses berjalan normal
active (exited)Selesai menjalankan tugas satu kali (umum pada layanan oneshot)
inactive (dead)Tidak berjalan, belum dijalankan atau sudah dihentikan
activating (auto-restart)Gagal lalu sedang dicoba ulang otomatis
failedProses keluar dengan error atau gagal start; lanjutkan ke journalctl -u nama -xe

Restart atau reload?

restart menghentikan lalu menjalankan ulang proses sehingga koneksi aktif terputus sesaat. reload hanya meminta proses membaca ulang konfigurasi. Pada server yang sedang dipakai, pilih reload bila layanan mendukungnya, dan selalu uji sintaks lebih dulu.

Target: pengganti runlevel

systemctl get-default                       # target bawaan saat boot
sudo systemctl set-default multi-user.target # server tanpa GUI
sudo systemctl isolate rescue.target         # masuk mode rescue untuk perbaikan

Membuat unit service sendiri

Contoh berikut membuat layanan web sederhana. Pastikan python3 terpasang (sudo apt install python3). Simpan sebagai /etc/systemd/system/web-kelas.service:

[Unit]
Description=Web sederhana kelas XII TJKT
After=network.target

[Service]
User=www-data
ExecStart=/usr/bin/python3 -m http.server 8080 --directory /srv/web
Restart=on-failure

[Install]
WantedBy=multi-user.target
sudo mkdir -p /srv/web
echo "Halo dari layanan systemd" | sudo tee /srv/web/index.html
sudo systemctl daemon-reload          # wajib setiap unit file dibuat/diubah
sudo systemctl enable --now web-kelas
systemctl status web-kelas --no-pager
curl http://localhost:8080

Untuk mengubah layanan bawaan paket tanpa menyentuh file aslinya, gunakan sudo systemctl edit ssh. Perintah ini membuat file override di /etc/systemd/system/ssh.service.d/override.conf yang tetap aman saat paket di-upgrade.

Log sistem: journald, rsyslog, dan /var/log

Debian punya dua jalur pencatatan: journald (format biner, dibaca dengan journalctl) dan rsyslog (file teks di /var/log). Pada instalasi minimal Debian 12 dan 13, rsyslog bisa saja tidak terpasang, sehingga file seperti /var/log/syslog tidak ada. journalctl tetap berfungsi. Jika Anda ingin file teks klasik, pasang dengan sudo apt install rsyslog.

journalctl: filter yang paling sering dipakai

TujuanPerintah
Log terbaru secara real timejournalctl -f
Sejak boot terakhirjournalctl -b
Boot sebelumnyajournalctl -b -1 (daftar boot: journalctl --list-boots)
Satu layananjournalctl -u ssh
Layanan dengan penjelasan errorjournalctl -u apache2 -xe
Hanya error atau lebih parahjournalctl -p err -b
Rentang waktujournalctl --since "09:00" --until "10:00" atau --since yesterday
Pesan kerneljournalctl -k
Milik satu penggunajournalctl _UID=1000 --since today
Ukuran log sekarangjournalctl --disk-usage
Hapus log lamasudo journalctl --vacuum-time=2weeks

Tingkat prioritas log berurutan dari yang paling parah: 0 emerg, 1 alert, 2 crit, 3 err, 4 warning, 5 notice, 6 info, 7 debug. Opsi -p err menampilkan level 3 dan yang lebih parah.

Membuat log tersimpan permanen

Journal bisa tersimpan hanya di memori (/run/log/journal) sehingga hilang saat reboot. Cek dengan ls /var/log/journal. Jika direktori belum ada, buat dan atur penyimpanan persisten:

sudo mkdir -p /var/log/journal
sudoedit /etc/systemd/journald.conf     # isi: Storage=persistent  dan  SystemMaxUse=200M
sudo systemctl restart systemd-journald
journalctl --disk-usage

File log klasik di /var/log

FileIsi
/var/log/syslogPesan sistem umum (butuh rsyslog)
/var/log/auth.logLogin, sudo, dan SSH (butuh rsyslog)
/var/log/kern.logPesan kernel (butuh rsyslog)
/var/log/dpkg.log, /var/log/apt/history.logRiwayat instalasi dan penghapusan paket
/var/log/apache2/error.log, access.logLog web server Apache
/var/log/wtmp, /var/log/btmpRiwayat login berhasil dan gagal, dibaca dengan last dan lastb

Alat bantu baca file teks: tail -f untuk memantau, less untuk menjelajah, dan grep untuk mencari, misalnya sudo grep "Failed password" /var/log/auth.log | tail. Agar log tidak memenuhi disk, logrotate (diatur di /etc/logrotate.conf dan /etc/logrotate.d/) memutar dan mengompres file log secara berkala.

Latihan membaca satu baris log

Berikut contoh baris log SSH (data contoh):

Oct 27 10:15:02 debian sshd[1234]: Failed password for invalid user admin from 192.168.1.50 port 52144 ssh2

Baris ini terbaca dari kiri ke kanan: waktu kejadian, nama host, proses beserta PID (sshd[1234]), lalu pesan. Artinya ada percobaan login dengan akun admin yang tidak ada, dari alamat 192.168.1.50. Banyak baris serupa dalam waktu singkat adalah tanda percobaan tebak kata sandi.

Troubleshooting Debian: alur 6 langkah

Troubleshooting yang baik adalah kebiasaan bekerja runtut, bukan menebak perintah. Gunakan enam langkah ini setiap kali sebuah layanan atau jaringan bermasalah:

  1. Definisikan gejala. Apa yang tidak berfungsi, sejak kapan, dan apa yang baru saja diubah? Perubahan terakhir adalah tersangka utama.
  2. Cek status layanan. systemctl status nama dan systemctl --failed.
  3. Baca log. journalctl -u nama -xe atau journalctl -p err -b.
  4. Uji konfigurasi. Jalankan perintah uji sintaks layanan, misalnya apache2ctl configtest atau sshd -t.
  5. Periksa sumber daya dan jaringan. df -h (disk), free -h (memori), ss -tulpn (port yang dipakai), ip a dan ip r (IP dan rute), ping dan dig (konektivitas dan DNS).
  6. Perbaiki, verifikasi, dokumentasikan. Ubah satu hal pada satu waktu, uji ulang, lalu catat penyebab dan perbaikannya.

Tabel kasus gangguan umum

GejalaKemungkinan penyebabDiagnosisPerbaikan
Layanan failed saat startSalah sintaks konfigurasi, port bentroksystemctl status X, journalctl -u X -xe, ss -tulpnPerbaiki konfigurasi, hentikan proses yang memakai port yang sama
Tidak bisa SSH ke serverLayanan ssh mati, port salah, firewall menutupsystemctl status ssh, ss -tlnp, journalctl -u sshJalankan layanan, cek sshd -t, periksa aturan firewall
Server tidak punya IP atau internet/etc/network/interfaces salah, gateway keliruip a, ip r, systemctl status networkingPerbaiki file, lalu sudo systemctl restart networking
Nama domain tidak ter-resolve/etc/resolv.conf kosong atau salahcat /etc/resolv.conf, dig google.comIsi nameserver yang benar
Disk penuh, layanan errorLog atau file besar di /vardf -h, sudo du -xh /var | sort -h | tail, journalctl --disk-usageBersihkan, journalctl --vacuum-time, atur logrotate
apt update gagalRepositori salah, tidak ada koneksicat /etc/apt/sources.list, ping deb.debian.orgPerbaiki sumber repositori dan koneksi
Boot berhenti di emergency modeBaris /etc/fstab salah atau disk hilangjournalctl -xb -p 3, systemctl --failedPerbaiki /etc/fstab, uji dengan mount -a
Situs web tidak terbukaApache mati, konfigurasi salah, port 80 tertutupapache2ctl configtest, journalctl -u apache2, ss -tulpnPerbaiki konfigurasi, reload, cek firewall
Layanan mati setelah rebootBelum di-enablesystemctl is-enabled Xsudo systemctl enable X

Kebiasaan yang mencegah masalah

  • Selalu simpan salinan file konfigurasi sebelum mengubahnya.
  • Pertahankan satu sesi SSH tetap terbuka saat mengubah konfigurasi SSH atau firewall, agar Anda tidak terkunci di luar server.
  • Gunakan reload setelah uji sintaks lulus, bukan restart langsung.
  • Catat setiap perubahan: tanggal, file, alasan, dan hasil.

Praktikum terpandu

Kerjakan tiga lab berikut di mesin virtual Debian. Setiap lab melatih satu kompetensi: konfigurasi, layanan, dan troubleshooting berbasis log.

Lab 1: Mengamankan SSH dengan alur konfigurasi aman

Tujuan: menonaktifkan login root lewat SSH tanpa memutus akses.

  1. Buka dua sesi terminal. Biarkan satu sesi tetap terhubung sebagai cadangan.
  2. Backup: sudo cp -a /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.
  3. Edit sudoedit /etc/ssh/sshd_config, ubah atau tambahkan PermitRootLogin no.
  4. Uji sintaks: sudo sshd -t (tidak ada keluaran berarti benar).
  5. Terapkan: sudo systemctl reload ssh.
  6. Verifikasi: systemctl status ssh dan journalctl -u ssh -n 20.

Hasil yang diharapkan: layanan active (running), login root lewat SSH ditolak, dan sesi cadangan tetap hidup.

Lab 2: Membuat dan memperbaiki layanan systemd

Tujuan: membuat unit web-kelas.service dari bagian sebelumnya lalu mendiagnosis kegagalannya.

  1. Buat unit file dan jalankan sampai curl http://localhost:8080 menampilkan teks.
  2. Sabotase: ubah ExecStart menjadi path yang salah (misalnya /usr/bin/python4), lalu sudo systemctl daemon-reload dan sudo systemctl restart web-kelas.
  3. Amati systemctl status web-kelas yang berstatus failed.
  4. Baca penyebabnya: journalctl -u web-kelas -xe.
  5. Perbaiki path, daemon-reload, restart, lalu uji ulang dengan curl.
  6. Uji enable: reboot dan pastikan layanan berjalan sendiri (systemctl is-enabled web-kelas).

Hasil yang diharapkan: siswa bisa menunjukkan baris log yang menjelaskan kegagalan dan menyebut langkah perbaikannya.

Lab 3: Troubleshooting web server Apache

Tujuan: menemukan dan memperbaiki kesalahan konfigurasi menggunakan uji sintaks dan log.

  1. Pasang dan jalankan Apache: sudo apt install apache2, lalu buka halaman bawaan dari klien.
  2. Backup: sudo cp -a /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak.
  3. Rusak dengan sengaja: tambahkan satu baris berisi direktif yang salah ketik di akhir apache2.conf.
  4. Coba sudo systemctl reload apache2, lalu amati pesan kegagalannya.
  5. Diagnosis: sudo apache2ctl configtest dan journalctl -u apache2 -xe.
  6. Pulihkan dari backup atau hapus baris yang salah, uji sintaks, lalu reload.
  7. Tulis laporan singkat: gejala, penyebab, langkah perbaikan, dan pencegahan.

Hasil yang diharapkan: configtest menampilkan Syntax OK dan halaman web dapat diakses kembali.

Soal latihan administrasi Linux Debian

Pilihan ganda

  1. Direktori utama penyimpanan file konfigurasi sistem di Debian adalah: (a) /var, (b) /etc, (c) /usr, (d) /home.
  2. Perintah untuk menampilkan hanya unit systemd yang gagal adalah: (a) systemctl --failed, (b) systemctl list-all, (c) systemctl mask, (d) systemctl is-enabled.
  3. Agar sebuah layanan berjalan otomatis setiap boot, perintah yang tepat adalah: (a) systemctl start, (b) systemctl enable, (c) systemctl reload, (d) systemctl isolate.
  4. Pernyataan yang benar tentang reload dan restart: (a) reload membaca ulang konfigurasi tanpa menghentikan proses, restart menghentikan lalu menjalankan ulang; (b) reload selalu menghapus konfigurasi; (c) keduanya identik; (d) restart hanya membaca ulang konfigurasi.
  5. Perintah untuk melihat log layanan SSH sejak boot terakhir adalah: (a) journalctl -u ssh -b, (b) systemctl log ssh, (c) cat /etc/ssh, (d) journalctl --disk-usage.
  6. Level prioritas log err bernomor: (a) 0, (b) 3, (c) 5, (d) 7.
  7. Perintah untuk menguji sintaks konfigurasi Apache adalah: (a) apache2ctl configtest, (b) apache2 --clean, (c) systemctl cat apache2, (d) journalctl -k.
  8. File yang mengatur partisi yang di-mount saat boot adalah: (a) /etc/hosts, (b) /etc/fstab, (c) /etc/passwd, (d) /etc/resolv.conf.

Uraian

  1. Situs web di server Debian tidak bisa dibuka. Urutkan langkah troubleshooting Anda dan sebutkan perintah yang dipakai pada tiap langkah.
  2. Jelaskan tiga alasan mengapa file konfigurasi perlu di-backup dan diuji sintaksnya sebelum layanan di-reload.

FAQ administrasi Linux Debian untuk siswa TJKT

Apa yang dipelajari dalam administrasi sistem jaringan kelas XII TJKT?

Siswa umumnya mendalami pengelolaan server berbasis Linux seperti Debian: konfigurasi, layanan jaringan (SSH, DNS, DHCP, web), pemantauan log, dan pemecahan masalah. Materi ini membahas fondasinya; cakupan pastinya mengikuti kurikulum dan modul sekolah Anda.

Apa perbedaan service dan systemctl?

systemctl adalah alat utama systemd dan lebih lengkap. Perintah service nama status di Debian masih bisa dipakai sebagai pembungkus yang meneruskan ke systemd, tetapi untuk belajar gunakan systemctl.

Di mana file log di Debian 12 dan 13?

Journal tersimpan di /var/log/journal (persisten) atau /run/log/journal (hilang saat reboot) dan dibaca dengan journalctl. File teks di /var/log seperti auth.log baru ada jika rsyslog terpasang.

Mengapa /var/log/syslog tidak ada di Debian saya?

Kemungkinan besar rsyslog belum terpasang. Pasang dengan sudo apt install rsyslog, atau langsung gunakan journalctl yang sudah tersedia.

Bagaimana cara melihat log layanan yang error?

Jalankan journalctl -u nama-layanan -xe untuk log terbaru beserta penjelasan, atau journalctl -u nama-layanan -b -p err untuk error sejak boot terakhir.

Bagaimana cara mengatasi service failed di Linux?

Ikuti alur enam langkah: tetapkan gejala, cek systemctl status, baca log dengan journalctl, uji konfigurasi, periksa disk, port, dan jaringan, lalu perbaiki dan verifikasi.

Apakah saya harus login sebagai root?

Tidak. Login sebagai pengguna biasa dan gunakan sudo hanya untuk perintah yang memerlukannya. Cara ini lebih aman dan meninggalkan jejak di log.

Debian versi berapa yang sebaiknya dipakai untuk belajar?

Gunakan rilis stabil yang dipakai sekolah Anda. Untuk materi ini, perintah di Debian 12 dan 13 pada dasarnya sama; perbedaan yang paling terlihat ada pada format file repositori APT.

Tinggalkan Balasan