Cara Instal Suricata di Ubuntu untuk Mengamankan Jaringan

Intrusion Detection System (IDS) dan Intrusion Prevention System (IPS) membantu mencegah penjahat cyber menyusup ke server Anda. Tool ini akan menghentikan traffic dan memicu peringatan secara otomatis saat menemukan aktivitas berbahaya.

Di VPS (virtual private server) Ubuntu, Suricata merupakan solusi IDS dan IPS yang cukup populer. Selain open-source, pemantauan traffic jaringan ini juga tersedia untuk berbagai sistem operasi, termasuk Windows dan Linux.

Di artikel ini, kami akan menjelaskan cara instal Suricata di Ubuntu untuk membantu Anda meningkatkan keamanan jaringan. Kami juga akan menjelaskan cara mengubah pengaturan defaultnya dan membuat aturan deteksi baru agar sesuai dengan kebutuhan keamanan VPS Anda.

Persiapan Awal

Meskipun Suricata tidak menyebutkan persyaratan hardware minimum untuk menginstalnya, kami merekomendasikan CPU 2 core dan RAM 4 GB sebagai spesifikasi dasar untuk menjamin performa yang optimal.

Apabila belum memiliki paket VPS hosting, Anda bisa menggunakan paket KVM 2 dari Hostinger sebagai permulaan, lalu melakukan upgrade nanti ketika dibutuhkan.

Paket ini sangat ideal karena vCPU 2 core dan RAM 8 GB yang disertakannya masih mencukupi untuk menghosting aplikasi lainnya, plus harganya cukup terjangkau mulai dari Rp116900.00/bulan saja.

Untuk sistem operasi, pastikan VPS Anda mendukung Ubuntu 22.04 atau yang lebih tinggi. Versi yang lebih lama mungkin tidak kompatibel dengan Suricata terbaru.

User Hostinger bisa menggunakan one-click installer di hPanel untuk mengganti sistem operasi. Caranya, buka Ringkasan VPSOS & PanelSistem OperasiPlain OS. Setelah itu, pilih versi terbaru Ubuntu, lalu klik Ubah OS.

Penginstalan Suricata juga membutuhkan hak akses root atau superuser guna menjalankan perintah Linux. Untuk menghindari masalah izin dan memastikan proses penginstalan command-line yang lancar, pilihlah provider VPS hosting yang menyediakan akses server penuh, seperti Hostinger.

Selain kompatibilitas yang optimal, provider VPS hosting terbaik harus memiliki fitur yang lengkap dan jaminan uptime yang maksimal. Sebagai contoh, Hostinger menyediakan AI Assistant untuk memudahkan Anda melakukan berbagai tugas menggunakan perintah AI untuk mengelola VPS.

Kami juga menyediakan Terminal browser untuk membantu Anda tersambung ke sistem Ubuntu tanpa menggunakan klien SSH seperti PuTTY. Untuk mengakses VPS dari jarak jauh, gunakan kredensial login pada tab Akses SSH di menu Ringkasan.

Penting! Secara default, Anda akan login sebagai user root. Sebaiknya ganti ke akun lain yang memiliki hak istimewa superuser untuk menghindari eksekusi perintah yang bisa menyebabkan kerusakan fungsi secara tidak sengaja.

Semua paket VPS hosting kami memiliki jaminan uptime 99,9% dan jaminan uang kembali 30 hari.

Cara Instal Suricata di Ubuntu

Di bagian ini, kami akan menjelaskan langkah-langkah menginstal Suricata pada VPS yang menjalankan Ubuntu 22.04.

Apabila ingin menginstalnya di host gateway untuk memindai traffic jaringan yang masuk dan keluar, Anda mungkin perlu melakukan langkah-langkah tambahan, seperti memodifikasi aturan firewall.

1. Update Package Ubuntu

Sebelum menginstal Suricata, update APT untuk memastikan Anda mendapatkan versi lokal terbaru. Langkah ini juga menerapkan patch terbaru untuk package sistem lain guna membantu meningkatkan keamanan dan menghindari masalah kompatibilitas.

Untuk melihat daftar update package sistem yang tersedia di repositori APT, jalankan perintah berikut:

sudo apt update

Instal update untuk semua package sistem menggunakan perintah berikut:

sudo apt upgrade

Prosesnya mungkin memakan waktu beberapa menit atau jam, tergantung pada ukuran total update dan kecepatan internet Anda.

2. Instal Suricata

Ada beberapa metode untuk menginstal Suricata di Ubuntu. Di bagian ini, kami akan menjelaskan tiga cara instal Suricata di Ubuntu, dimulai dari yang paling mudah.

Cara Instal Suricata di Ubuntu Menggunakan APT

Gunakan perintah ini untuk menginstal Suricata di Ubuntu menggunakan repositori APT lokal:

sudo apt install -y suricata

Untuk memverifikasi apakah Suricata telah terinstal dengan benar, periksa nomor versinya menggunakan perintah di bawah ini:

suricata -V

Penting! Teliti lagi penggunaan huruf besar dan kecil dengan cermat saat memasukkan perintah, karena perintah tersebut peka terhadap huruf besar/kecil.

Atau, lihat daftar package yang terinstal di Ubuntu menggunakan perintah apt list dan filter Suricata menggunakan grep seperti berikut ini:

sudo apt list --installed | grep suricata

Perlu diperhatikan bahwa metode ini mungkin menginstal versi yang lebih lama karena Anda menggunakan repositori package manager APT lokal.

Cara Instal Suricata di Ubuntu Menggunakan Binary Package

Untuk menginstal rilis stabil terbaru, impor repositori Open Information Security Foundation (OISF) dari server Suricata. Untuk melakukannya, jalankan perintah berikut:

sudo apt install software-properties-common
sudo add-apt-repository ppa:oisf/suricata-stable

Tekan Enter kalau Terminal meminta konfirmasi. Setelah mengimpor repositori, update APT dan buka package software dengan perintah berikut:

sudo apt install suricata

Apabila menjalankan turunan Debian lainnya, gunakan repositori backports untuk mendapatkan rilis stabil terbaru. Lihat panduan penginstalan binary package Suricata untuk informasi lebih lanjut.

Cara Instal Suricata di Ubuntu Menggunakan File Distribusi Sumber

Dengan menyiapkan Suricata dari file distribusi sumber, Anda bisa menyesuaikan pengaturan penginstalannya lebih lanjut. Namun, Anda perlu menginstal beberapa dependensi dan berbagai header pengembangan.

Setelah menginstal dependensi Suricata, jalankan perintah berikut ini satu per satu:

tar xzvf suricata-6.0.0.tar.gz
cd suricata-6.0.0
./configure
make
make install

3. Konfigurasikan Suricata

Paket Suricata menyertakan file konfigurasi YAML untuk mengubah pengaturan dan perilaku tool ini. Anda bisa mengeditnya menggunakan editor teks seperti nano:

sudo nano /etc/suricata/suricata.yaml

File suricata.yaml memiliki beberapa parameter yang bisa Anda sesuaikan. Beberapa yang paling umum adalah:

  • Konfigurasi interface. Menentukan interface jaringan dan metode untuk menangkap paket. Beberapa pengaturannya adalah af;-packets, af-xdp, dan pcap.
  • Logging. Mengubah tempat Suricata menyimpan log deteksi jaringan, format, dan tingkat peringatannya. Anda bisa mengubah pengaturan ini melalui parameter output.
  • File PID. Mengatur file PID (process identification) untuk menjalankan Suricata sebagai daemon atau layanan. Tentukan nama dan direktorinya pada parameter pid-files.
  • Aturan deteksi. Menentukan file yang berisi aturan filter paket dan lokasinya. Parameternya masing-masing adalah default-rule-path dan rule-files.
  • Ukuran paket. Mengubah ukuran paket maksimum yang akan diproses oleh Suricata dan ditransmisikan oleh jaringan Anda. Tentukan nilai byte dalam parameter max-pending-packet dan default-packet-size.
  • ID Community Flow. Mengidentifikasi aliran jaringan Suricata untuk mengizinkan integrasi dengan tool lain, seperti Zeek. Parameter community-id diatur ke false secara default.

Edit konfigurasi yang diperlukan lalu tekan Ctrl + X, Y, dan Enter untuk menyimpan perubahan. Untuk mencari parameter tertentu dengan cepat, gunakan shortcut Ctrl + W untuk mengaktifkan fitur pencarian.

Selain membaca instruksi yang disediakan, baca dokumentasi file konfigurasi Suricata untuk mempelajari pengaturannya lebih lanjut. Untuk commented parameter seperti community-id, hapus simbol hash (#) di awal untuk mengaktifkannya.

4. Aktifkan Network Interface

Untuk memproses traffic jaringan dan memblokir paket-paket berbahaya agar tidak merusak sistem Anda, Suricata harus memantau sebuah interface.

Secara default, Suricata tidak memantau konektivitas apa pun yang masuk ke server Anda atau yang keluar darinya. Pengguna harus menentukan network interface yang akan dipantau dan metode penangkapan paket melalui file YAML.

Misalnya, kami ingin menggunakan metode penangkapan af-packet dan memantau network interface venet0. Berikut tampilan konfigurasinya:

af-packet:
   - interface: venet0

Masukkan perintah berikut ini untuk menampilkan interface default dan informasi perutean lainnya:

ip -p -j route show

Tetapkan metode penangkapan paket sesuai kebutuhan Anda. Misalnya, af-packet cocok untuk pemantauan jaringan secara langsung, sedangkan pcap ideal untuk analisis offline.

Untuk memantau beberapa network interface, tambahkan baris baru berikut ini di bawah bagian metode penangkapan. Pastikan cluster-ID yang ditambahkan berbeda-beda:

-  interface: interface name
   cluster-id: 29

5. Mulai Suricata

Aktifkan layanan Suricata menggunakan perintah systemctl untuk menjalankannya di latar belakang:

sudo systemctl start suricata

Untuk memeriksa apakah tool tersebut sudah berjalan dengan benar, jalankan perintah berikut:

sudo systemctl status suricata

Apabila layanan Suricata sedang berjalan, Terminal akan menampilkan status loaded dan active seperti berikut ini.

Ingat, selalu mulai ulang layanan Suricata setelah melakukan perubahan pada file konfigurasi untuk memastikan pengaturan baru sudah diterapkan dengan benar. Berikut perintah yang bisa Anda gunakan:

sudo systemctl restart suricata

Atau, hentikan Suricata dan jalankan kembali menggunakan perintah systemctl start. Untuk menghentikan daemon, masukkan perintah berikut:

sudo systemctl stop suricata

6. Otomatiskan Proses Start Suricata

Mengotomatiskan proses start Suricata membantu menjaga keamanan VPS secara lebih optimal karena Anda tidak perlu mengaktifkannya secara manual setelah reboot sistem. Selain itu, langkah ini juga membantu meningkatkan efisiensi pengelolaan server.

Mulailah dengan membuat file unit layanan systemd baru untuk menjalankan Suricata secara otomatis ketika server dimulai. Masukkan perintah berikut untuk melakukannya:

sudo nano /etc/systemd/system/suricata.service

Di dalam file unit layanan, masukkan baris-baris berikut:

# Define the Suricata systemd unit
[Unit]
Description=Suricata IDS/IPS
After=network.target

# Specify the Suricata binary path, the configuration files location, and the network interface
[Service]
ExecStart=/usr/bin/suricata -c /etc/suricata/suricata.yaml -i venet0
[Install]

WantedBy=default.target

Tekan Ctrl + X, Y, dan Enter untuk menyimpan perubahan. Jalankan perintah berikut untuk mengaktifkan Suricata agar bisa dimuat secara otomatis saat boot sistem:

sudo systemctl enable suricata

Kemudian, jalankan perintah systemctl start untuk memulai Suricata. Periksa statusnya untuk memastikan layanan ini sudah berjalan.

Apabila Terminal menampilkan error No rule files match, Suricata mungkin tidak bisa memuat aturan pemantauan jaringan. Untuk memperbaikinya, jalankan suricata-update untuk merefresh path direktori.

Kemudian, buka file suricata.yaml dan modifikasi aturan konfigurasinya, seperti berikut ini:

default-rule-path: /var/lib/suricata/rules
rule-files:
   - suricata.rules

Simpan file dan mulai ulang layanan untuk menerapkan perubahan.

7. Uji Coba Fungsi Suricata

Setelah menjalankan Suricata, validasikan file konfigurasinya untuk memastikan tool ini sudah berfungsi. Cara termudah untuk melakukannya adalah dengan menggunakan perintah pengujian bawaan:

sudo suricata -T -c /etc/suricata/suricata.yaml -v

Menggunakan opsi -T, Anda bisa menjalankan mode percobaan Suricata. Kemudian, dengan opsi -c, Anda bisa menemukan file konfigurasi di path yang ditentukan. Selain itu, opsi -v akan mengaktifkan mode verbose, yang memberikan detail eksekusi perintah, termasuk error yang terjadi.

Apabila Anda memiliki banyak aturan dan thread CPU yang terbatas, prosesnya akan berjalan lebih lama tapi tidak boleh lebih dari beberapa menit. Terminal akan menampilkan log pengujian seperti berikut ini.

Dalam langkah ini, cari pesan peringatan yang menunjukkan adanya kesalahan konfigurasi pada file YAML Anda. Untuk mempermudah penyelesaian masalah, manfaatkan AI Assistant VPS kami untuk mendapatkan solusinya.

Kemudian, periksa aturan Suricata untuk memastikan aturan tersebut mendeteksi traffic berbahaya dengan benar. Panduan quick start Suricata menyarankan agar Anda menggunakan aturan ET Open nomor 2100498 dan membuat sambungan ke URL pengujian menggunakan perintah curl:

curl http://testmynids.org/uid/index.html

Perintah ini akan mengirimkan permintaan HTTP untuk memicu aturan peringatan. Kemudian, Suricata akan menghasilkan peristiwa log dalam file eve.json dan fast.log tentang traffic yang terdeteksi.

Cek apakah Suricata melabeli permintaan HTTP tersebut sebagai traffic yang berpotensi berbahaya dalam file fast.log. Untuk melakukannya, jalankan utilitas grep untuk memfilter nomor ID aturan:

grep 2100498 /var/log/suricata/fast.log

Output akan menampilkan log yang melabeli paket sebagai Potentially Bad Traffic.

Karena log eve memformat entri-entrinya sebagai JSON, diperlukan utilitas jq untuk menganalisisnya. Lewati langkah ini kalau Anda sudah menginstal utilitas tersebut. Kalau belum, jalankan:

sudo apt install jq

Kemudian, masukkan perintah berikut untuk memfilter entri file log berdasarkan ID tanda tangan dan jenis peringatan:

jq 'select(.alert .signature_id==2100498)' /var/log/suricata/eve.json

Anda akan melihat ID aturan dan kategori Potentially Bad Traffic yang sama. Hal ini berarti Suricata telah mencocokkan traffic jaringan Anda dengan aturan deteksi yang benar.

Log ini sangat membantu dalam pengelolaan peringatan dan pemantauan keamanan jaringan. Sebagai contoh, Anda bisa memblokir sumber traffic yang mencurigakan di Uncomplicated Firewall (UFW) Ubuntu atau iptables.

8. Update Aturan Suricata

Suricata mendeteksi paket yang mencurigakan dengan menggunakan tanda tangan atau aturan yang ditetapkan pengguna. Sudah ada beberapa yang disertakannya secara default, tapi mungkin tidak cukup kalau server Anda menerima traffic dari banyak sumber.

Untuk menambahkan aturan baru, ambil kumpulan aturan tambahan dari berbagai penyedia pihak ketiga. Beberapa di antaranya gratis, tapi ada juga yang mengenakan biaya berlangganan. Untuk melihat daftarnya, jalankan perintah berikut:

sudo suricata-update list-sources

Anda akan melihat vendor penyedia, ringkasan, lisensi, dan informasi langganannya. Untuk mengimpor kumpulan aturan, jalankan perintah berikut:

sudo suricata-update enable-source provider-name

Ganti placeholder provider-name dengan sumber kumpulan aturan yang Anda inginkan. Sebagai contoh, jalankan perintah berikut untuk mengambil sslbl/ja3-fingerprints:

sudo suricata-update enable-source sslbl/ja3-fingerprints

Kemudian, jalankan kembali perintah suricata-update untuk mengupdate dan memvalidasi file aturan di direktori /etc/suricata/rules. Apabila Anda tidak menambahkan sumber eksternal, update Suricata akan mengambil aturan-aturan default dari ET OPEN.

Setelah mengupdate sumber ET OPEN default, Anda akan melihat bahwa Suricata telah memproses pemeriksaan packet payload signature dan ip-only rules.

Pesan update akan diakhiri dengan pembersihan struktur pengelompokan tanda tangan oleh tool ini. Apabila sudah dalam versi terkini, Terminal akan menampilkan No changes detected, exiting.

Sebaiknya jalankan tool update Suricata secara rutin untuk memastikan sistem Anda menerima aturan terbaru. Dengan demikian, Anda akan turut menjaga keamanan server Ubuntu secara lebih optimal.

Atau, Anda juga boleh menggunakan tool pengelolaan aturan Suricata seperti Pulledpork dan Oinkmaster untuk menyempurnakan metode deteksi. Gunakan nano untuk memodifikasi file:

sudo nano /etc/suricata/rules/rule_name.rules

Sintaksis aturan Suricata adalah sebagai berikut:

action protocol source-ip/port -> destination-ip/port (options; options; ... )

Berikut arti setiap parameter dan nilai yang diterima:

  • action. Tindakan yang akan diambil ketika kondisi aturan terpenuhi. Nilai yang dimungkinkan termasuk drop, alert, dan log.
  • protocol. Protokol jaringan yang dipantau, termasuk TCP, UDP, ICMP, atau IP.
  • source-ip/port. IP dan port yang menjadi sumber traffic.
  • destination-ip/port. IP dan port tempat aturan berlaku.
  • (options; options; …). Kata kunci yang menentukan pengaturan atau kondisi tambahan.

Untuk mempelajari parameter ini lebih lanjut dan opsi yang mungkin digunakan, silakan baca dokumentasi aturan Suricata

Kesimpulan

Suricata adalah sistem IDS dan IPS open-source yang membantu mencegah traffic berbahaya agar tidak masuk server untuk meningkatkan keamanan sistem Anda. Sistem ini bekerja dengan mendeteksi dan menghentikan traffic yang mencurigakan berdasarkan aturan tertentu.

Melalui artikel ini, kami sudah menjelaskan cara instal Suricata di Ubuntu 22.04 atau versi yang lebih baru. Setelah menginstal Ubuntu dan mendapatkan akses root ke server melalui SSH, ikuti langkah-langkah berikut:

  1. Update package Ubuntu. Jalankan perintah apt update dan apt upgrade untuk menginstal versi terbaru dari semua package.
  2. Instal Suricata. Instal tool ini melalui repositori APT atau OISF kalau Anda menginginkan versi Suricata terbaru.
  3. Konfigurasikan Suricata. Gunakan editor teks seperti nano untuk mengedit file suricata.yaml dan mengubah konfigurasi default.
  4. Aktifkan network interface. Ubah metode penangkapan paket dan parameter network interface agar Suricata bisa memantau traffic server Anda.
  5. Mulai Suricata. Jalankan perintah systemctl untuk menjalankan Suricata sebagai sebuah daemon.
  6. Otomatiskan proses mulai Suricata. Buat file unit layanan systemd Suricata dan gunakan systemctl untuk mengaktifkan tool ini selama pengaktifan sistem.
  7. Uji fungsi Suricata. Validasikan file konfigurasi Suricata menggunakan fitur pengujian bawaan dan periksa aturannya dengan mengirimkan permintaan HTTP percobaan.
  8. Update aturan Suricata. Jalankan suricata-update dengan flag enable-source untuk mengambil ruleset dari sumber eksternal. Update Suricata untuk menerapkan dan memvalidasi aturan yang baru.

Semoga artikel ini membantu Anda menginstal tool ini di VPS Ubuntu tanpa masalah. Apabila masih memiliki pertanyaan atau mengalami error selama prosesnya, jangan sungkan untuk menyampaikannya lewat komentar, ya!

Author
Penulis

Faradilla A.

Faradilla, yang lebih akrab disapa Ninda, adalah Content Marketing Specialist di Hostinger. Ia suka mengikuti tren teknologi, digital marketing, dan belajar bahasa. Melalui tutorial Hostinger ini, Ninda ingin berbagi informasi dan membantu pembaca menyelesaikan masalah yang dialami. Kenali Ninda lebih dekat di LinkedIn.