Cyber RoadmapINDONESIA

Fondasi · Fase 1

Proses di Linux: ps aux, top, htop, kill, systemctl, dan journalctl

Siapa yang sedang bekerja di komputermu? Pelajari cara melihat proses dengan ps, top, dan htop, mengenali proses mencurigakan, menghentikannya dengan kill, mengelola layanan dengan systemctl, dan membaca catatannya dengan journalctl.

Pernah merasa laptopmu tiba-tiba lambat dan kipasnya berputar kencang, padahal kamu tidak sedang membuka apa-apa? Di Windows, kamu akan membuka Task Manager untuk melihat program apa yang sedang bekerja. Di Linux, kamu melakukannya lewat terminal.

Setiap program yang sedang berjalan di Linux disebut proses. Bagi orang keamanan siber, kemampuan melihat dan mengendalikan proses sangat penting. Salah satu tanda paling umum bahwa server sudah dibobol adalah munculnya proses asing, misalnya penambang kripto yang diam-diam memakai CPU server untuk keuntungan penyerang.

Di artikel ini kamu akan belajar melihat proses dengan ps, top, dan htop, menghentikannya dengan kill, mengelola layanan dengan systemctl, dan membaca catatannya dengan journalctl.

Program, proses, dan layanan

Tiga istilah ini sering tertukar. Bayangkan sebuah resep masakan:

Program, proses, dan layanan
IstilahAnalogiContoh
ProgramResep yang tertulis di bukuFile /usr/bin/nano yang tersimpan di disk
ProsesKegiatan memasak menurut resep itunano yang sedang kamu buka, punya nomor PID sendiri
Layanan (service / daemon)Dapur restoran yang buka terusWeb server nginx atau ssh yang berjalan di latar belakang

Setiap proses punya PID (process ID), yaitu nomor unik yang dipakai untuk menunjuk proses itu. Proses juga berjalan atas nama pengguna tertentu, sehingga hak aksesnya mengikuti hak akun tersebut. Ini sambungan langsung dengan materi user management sebelumnya.

Melihat proses: ps aux

ps aux menampilkan semua proses yang sedang berjalan saat itu, seperti foto sesaat.

ps aux                    # semua proses milik semua pengguna
ps aux | grep nginx       # cari proses tertentu
ps aux --sort=-%cpu | head    # 10 proses paling rakus CPU
pgrep -a ssh              # cari PID proses berdasarkan nama
Contoh hasil ps aux dengan satu proses mencurigakan: dijalankan akun www-data, memakai CPU 98,7 persen, mulai pukul 03.14, dari folder /tmp/.x
Contoh hasil ps aux dengan satu proses mencurigakan: dijalankan akun www-data, memakai CPU 98,7 persen, mulai pukul 03.14, dari folder /tmp/.x

Perhatikan baris yang ditandai. Satu baris saja bisa memberi tiga petunjuk: CPU yang hampir penuh, waktu mulai yang janggal, dan lokasi program di folder tersembunyi /tmp. Penyerang juga sering menamai programnya mirip proses sistem, seperti kworkerd atau systemd-helper, supaya tidak dicurigai.

Memantau secara langsung: top dan htop

Kalau ps adalah foto, top adalah video. Tampilannya diperbarui setiap beberapa detik, sehingga kamu bisa melihat proses mana yang sedang sibuk.

htop adalah versi yang lebih ramah: berwarna, bisa digulir, dan bisa dipakai dengan tombol fungsi. Biasanya belum terpasang, jadi pasang dulu dengan sudo apt install htop, seperti yang sudah kamu pelajari di materi package manager.

Tombol penting di top dan htop
TujuanDi topDi htop
Urutkan berdasarkan CPUPF6, lalu pilih CPU%
Urutkan berdasarkan memoriMF6, lalu pilih MEM%
Cari prosestidak ada (pakai ps)F3
Lihat hubungan induk-anak prosesVF5
Hentikan prosesk, lalu masukkan PIDF9
KeluarqF10 atau q

Menghentikan proses: kill

Namanya memang terdengar seram, tapi kill sebenarnya mengirim sinyal ke sebuah proses. Sinyalnya bisa berarti "tolong berhenti", "berhenti sekarang juga", atau "muat ulang konfigurasimu".

Tiga sinyal kill: SIGTERM 15 untuk meminta berhenti baik-baik, SIGKILL 9 untuk menghentikan paksa, dan SIGHUP 1 untuk memuat ulang
Tiga sinyal kill: SIGTERM 15 untuk meminta berhenti baik-baik, SIGKILL 9 untuk menghentikan paksa, dan SIGHUP 1 untuk memuat ulang
kill 4242            # kirim SIGTERM, minta berhenti baik-baik
kill -9 4242         # kirim SIGKILL, hentikan paksa
pkill nano           # hentikan proses berdasarkan nama
kill -l              # lihat daftar semua sinyal

Biasakan memakai kill biasa lebih dulu. kill -9 tidak memberi kesempatan program menyimpan data, sehingga bisa membuat file rusak. Kamu juga hanya bisa menghentikan proses milikmu sendiri, kecuali memakai sudo.

Mengelola layanan: systemctl

Layanan seperti web server dan SSH tidak dijalankan manual setiap kali dibutuhkan. Di sebagian besar distro modern, layanan diatur oleh systemd, dan alat untuk mengendalikannya adalah systemctl.

Perintah systemctl start dan stop yang berlaku sekarang, serta enable dan disable yang berlaku saat boot
Perintah systemctl start dan stop yang berlaku sekarang, serta enable dan disable yang berlaku saat boot
systemctl status ssh                              # lihat kondisi layanan ssh
sudo systemctl restart nginx                      # nyalakan ulang web server
sudo systemctl enable --now nginx                 # nyalakan sekarang dan setiap boot
systemctl list-units --type=service --state=running   # semua layanan yang sedang berjalan
systemctl --failed                                # layanan yang gagal berjalan

Di Ubuntu dan Debian, layanan SSH bernama ssh. Di keluarga Red Hat, namanya sshd. Kalau perintahmu menjawab "Unit not found", coba nama yang satunya.

Membaca catatan: journalctl

systemd mencatat apa saja yang dilakukan layanan: kapan menyala, kapan gagal, dan pesan apa yang dikeluarkan. Catatan ini disebut journal, dan dibaca dengan journalctl.

journalctl -u ssh                     # catatan layanan ssh
journalctl -u ssh --since "1 hour ago"    # hanya satu jam terakhir
journalctl -u ssh -f                  # ikuti catatan baru secara langsung
journalctl -p err -b                  # hanya pesan error sejak boot terakhir

Kalau hasilnya kosong atau ada pesan izin ditolak, tambahkan sudo. Pengguna biasa hanya bisa membaca sebagian catatan, kecuali tergabung dalam grup tertentu seperti adm atau systemd-journal.

Ringkasan perintah proses dan layanan
PerintahFungsiKegunaan di keamanan
ps auxDaftar semua proses saat iniMenemukan proses asing atau dijalankan akun yang janggal
top / htopMemantau proses secara langsungMendeteksi proses yang memakan CPU, seperti penambang kripto
killMengirim sinyal ke prosesMenghentikan proses berbahaya setelah buktinya diamankan
systemctlMengelola layananMematikan layanan yang tidak perlu dan mencari layanan asing
journalctlMembaca catatan layananMenelusuri login SSH yang gagal atau layanan yang tiba-tiba mati

Kenapa ini penting untuk keamanan siber

Saat sebuah server dicurigai dibobol, salah satu langkah pertama tim keamanan adalah melihat proses dan layanan yang berjalan. Proses asing, layanan baru yang tidak dikenal, atau layanan yang diatur agar menyala otomatis saat boot adalah cara umum penyerang bertahan di sistem, yang disebut persistence. Di sisi pertahanan, systemctl dipakai untuk mematikan layanan yang tidak perlu agar permukaan serangan mengecil, dan journalctl dipakai untuk menelusuri apa yang terjadi.

Ringkasan

  • Proses adalah program yang sedang berjalan. Setiap proses punya PID dan berjalan atas nama pengguna tertentu.
  • ps aux menampilkan semua proses saat ini, sedangkan top dan htop memantaunya secara langsung.
  • kill mengirim sinyal. Pakai SIGTERM dulu, SIGKILL (-9) hanya kalau perlu.
  • systemctl mengendalikan layanan: start/stop berlaku sekarang, enable/disable berlaku saat boot.
  • journalctl membaca catatan layanan dan sangat berguna untuk menelusuri masalah dan insiden.

Tonton dan baca juga

Materi berikutnya membahas izin file secara lebih dalam: arti rwx pada file dan folder, notasi angka, serta izin khusus SUID dan SGID yang sering dimanfaatkan penyerang. Buka di roadmap untuk melanjutkan.

Bermanfaat? Dukung konten berikutnya

Semua materi di sini gratis. Dukunganmu dipakai untuk membeli alat lab untuk praktik, eksplorasi, dan riset konten keamanan siber berikutnya.

Traktir di Trakteer ↗
Sampul course Cyber Security Fundamental

Pelajari lebih dalam

Cyber Security Fundamental di WPU Course

Lihat course ↗

Materi terkait di roadmap

Artikel lainnya

Artikel ini bersifat edukatif. Praktikkan teknik ofensif hanya di lingkungan yang kamu miliki izinnya. Baca Disclaimer.