Sebagai pemilik server atau SysAdmin, kita seringkali hanya fokus pada performa aplikasi: “Apakah web server jalan?”, “Apakah database aman?”. Padahal, di balik layar, IP Publik VPS kita terpapar ke internet 24 jam non-stop. Setiap detiknya, ada ribuan bot dan script kiddies yang berkeliaran mencari celah keamanan.
Mereka memulainya dengan Port Scanning (mengintip pintu mana yang terbuka) menggunakan tools seperti Nmap, dan jika apes, server kita bisa menjadi target DDoS (Distributed Denial of Service) yang melumpuhkan layanan.
Jika Anda hanya mengandalkan Firewall (seperti UFW atau IPTables), Anda hanya punya “pagar”. Tapi Anda tidak punya “CCTV” yang merekam siapa yang mencoba memanjat pagar tersebut.
Di sinilah Suricata berperan.
Suricata adalah Intrusion Detection System (IDS) open-source berkinerja tinggi yang bertugas memantau lalu lintas jaringan secara real-time. Ibarat satpam yang teliti, Suricata akan berteriak (memberikan alert) saat melihat pola mencurigakan mulai dari seseorang yang mencoba memindai port server Anda, hingga lonjakan trafik tidak wajar yang mengarah ke serangan DDoS.
Pada panduan kali ini, kita akan mengubah VPS Ubuntu Anda menjadi benteng pertahanan yang cerdas. Kita tidak hanya akan menginstal Suricata, tetapi juga akan membuat custom rules untuk menangkap basah pelaku Port Scanning dan serangan SYN Flood (DDoS).
Persiapan Instalasi
Sebelum memulai proses instalasi, ada beberapa persyaratan teknis yang perlu disiapkan agar Suricata dapat berjalan optimal sebagai cctv jaringan Anda.
Berikut adalah spesifikasi yang kami rekomendasikan:
1. Spesifikasi Hardware (Resource) Meskipun Suricata dapat berjalan di spesifikasi rendah, untuk lingkungan produksi yang stabil, kami sangat menyarankan penggunaan CPU minimal 2 Core dan RAM 4 GB.
- Rekomendasi Paket: Jika Anda belum memiliki server, paket Cloud VPS NVMe dari CloudAja/NataNetwork adalah pilihan yang tepat. Dukungan penyimpanan NVMe akan sangat membantu mempercepat proses penulisan log Suricata yang intensif tanpa membebani kinerja I/O server.
2. Sistem Operasi (OS) Pastikan VPS Anda menjalankan Ubuntu 22.04 LTS atau versi yang lebih baru.
3. Akses Root (Superuser/Sudo) Instalasi dan konfigurasi IDS seperti Suricata memerlukan akses penuh ke sistem kernel dan antarmuka jaringan.
4. Koneksi SSH Anda memerlukan aplikasi terminal SSH (seperti PuTTY, Terminal di macOS/Linux, atau PowerShell) untuk terhubung ke server. Pastikan Anda sudah mengetahui alamat IP Publik dan password root yang dikirimkan ke email Anda setelah aktivasi layanan.
Instalasi Suricata
1. Menambahkan repository Suricata
Tambahkan repository resmi dari OISF untuk mendapatkan repository terbaru Suricata.
sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt update
2. Install Suricata
sudo apt install suricata -y
3. Verifikasi dan cek status
Pastikan suricata sudah terinstall dengan mengecek versinya. Pastikan juga servicenya Suricata sudah berjalan.
suricata -v
sudo systemctl enable –now suricata
sudo systemctl status suricata
Konfigurasi Suricata
Kita perlu mengecek interface jaringan yang ada pada VPS, sebelum mengubah file konfigurasi Suricata
ip a
Catat nama interface yang memiliki IP Publik, biasanya bernama eth0, atau ens3. Selanjutnya buka file konfigurasi Suricata, yang terdapat di /etc/suricata/suricata.yaml. Sesuaikan konfigurasi dengan lingkungan server kita.
sudo nano /etc/suricata/suricata.yaml
cari pada bagian baris bernama “interface” untuk menyesuaikan nama interface sesuai dengan VPS kita.

Selanjutnya cari pada bagian HOME_NET dan EXTERNAL_NET, pada bagian HOME_NET ganti menjadi IP VPS kita dan EXTERNAL_NET menjadi any.

Pada bagian rule-files kita akan konfigurasi menjadi “*.rules” yang artinya, suricata akan menggunakan semua file dengan ekstensi .rules didalam direktori default-rule-path sebagai aturan-nya untuk mendeteksi trafik Malicious ke dalam server.

Dalam kasus ini saya menggunakan default-rule-path di /var/lib/suricata/, anda juga dapat menggantinya jika file .rules-nya diletakan di folder lain seperti /var/lib/suricata/rules/ atau /etc/suricata/rules/
Membuat rule suricata
Kita sebenarnya dapat menambahkan ruleset suricata yang sudah tersedia dari emerging threats, namun disini kita akan mencoba membuat custom rule saja yang nantinya dapat mendeteksi skenario serangan seperti port scan dan ddos. Sebelum itu, kita perlu membuat file untuk menulis dan wadah script rule tersebut.
touch /var/lib/suricata/attack.rules
sudo chown root:suricata /var/lib/suricata/attack.rules
sudo chmod 644 /var/lib/suricata/attack.rules
Untuk lokasinya disesuaikan dengan konfigurasi default-rule-path pada suricata.yaml. Begitu juga ketika menambahkan file ruleset dari emerging threats, kita perlu memindahkan filenya sesuai dengan konfigurasi didalam suricata.yaml.
1. Port Scan (Syn Scan)
Cara Kerja Serangan: Port Scanning adalah upaya penyerang untuk memetakan layanan apa saja yang berjalan di server Anda. Mereka melakukan ini dengan mengirimkan paket inisiasi koneksi (Flag SYN) ke ribuan port secara acak dalam waktu singkat. Jika server merespons, berarti port tersebut terbuka.
Logika Deteksi: Kita akan menginstruksikan Suricata untuk memantau pola berikut: “Jika ada satu alamat IP yang mencoba koneksi ke lebih dari 20 port berbeda dalam waktu 5 detik, tandai aktivitas tersebut sebagai Port Scanning.”
Dari logika tersebut maka kita dapat membuat semacam custom rule seperti berikut:
alert tcp any any -> $HOME_NET any (msg:”SURICATA Detection – Potential TCP SYN Scan”; flags:S; threshold:type both, track by_src, count 20, seconds 5; classtype:network-scan; sid:1000001; rev:1;)
2. DDOS (Syn Flood)
Cara Kerja Serangan: Berbeda dengan Port Scan yang “melebar” ke banyak port, serangan DDoS tipe SYN Flood fokus membanjiri satu pintu saja (biasanya Port 80/HTTP atau 443/HTTPS). Penyerang mengirimkan ribuan permintaan koneksi palsu secara terus-menerus hingga server kehabisan sumber daya (RAM/CPU) dan tidak bisa melayani pengunjung asli.
Logika Deteksi: Karena trafik web server biasanya memang ramai, kita membutuhkan batasan yang jauh lebih tinggi namun dalam waktu yang sangat singkat. Logikanya: “Jika ada satu IP yang mengirimkan 100 permintaan koneksi ke Port 80 dalam waktu 1 detik, ini tidak wajar dan harus dianggap sebagai serangan.”
Dari logika tersebut maka custom rule-nya adalah:
alert tcp any any -> $HOME_NET 80 (msg:”SURICATA Detection – [DDOS] SYN Flood Attack”; flags:S; flow:stateless; threshold:type both, track by_src, count 100, seconds 1; classtype:denial-of-service; sid:1000005; rev:1;)
Simpan script rule tersebut dan jalankan perintah validasi file konfigurasinya untuk memastikan tool ini sudah berfungsi.
sudo suricata -T -c /etc/suricata/suricata.yaml -v
Pengujian
Sebelum melakukan pengujian kita perlu tau dimana suricata mencatat peristiwa log alert setelah rule nya terpicu. Untuk alert Suricata terdapat 2 file log yang bisa kita cek, dengan lokasi berada di /var/log/suricata/. Untuk format log yang dapat kita baca secara langsung yaitu fast.log dan untuk format json yaitu eve.json. Biasanya untuk eve.json digunakan untuk integrasi ke platform lain seperti SIEM Wazuh.
Sebelum menyerang, kita perlu remot SSH VPS untuk melihat log secara real-time lalu jalankan perintah berikut :
tail -f /var/log/suricata/fast.log
1. Uji Deteksi Port Scan
Dari komputer lokal Anda (bukan dari VPS), gunakan Nmap untuk memindai port secara acak. Kita akan memindai kisaran port yang cukup lebar untuk memicu batas threshold (20 hit) yang sudah kita buat.
nmap [IP-VPS]
nmap -Pn -p 1-1000 [IP-VPS]

Di dalam log VPS tadi maka akan tampil baris log baru dengan pesan yang sesuai dengan rule kita :
[**] [1:1000001:1] SURICATA Detection – Potential TCP SYN Scan [**] [Classification: Network Scan] [Priority: 3] {TCP} 192.x.x.10:543x -> 103.x.x.x:1500

2. Uji Deteksi DOS
Selanjutnya, kita akan menguji kemampuan deteksi terhadap lonjakan trafik ke Port 80 menggunakan hping3.
Perintah Serangan: Jalankan perintah ini selama 3-5 detik saja, lalu segera hentikan dengan menekan CTRL+C
sudo hping3 -S -i u100000 –flood -p 80 [IP-VPS]

Maka Suricata akan menampilkan log baru didalam fast.log sesuai dengan custom rule DDOS :
[**] [1:1000005:1] SURICATA Detection – [DDOS] SYN Flood Attack [**] [Classification: Denial of Service] [Priority: 2] {TCP} 10.x.x.x:12345 -> 103.x.x.x:80

Kesimpulan
Dengan menginstal Suricata dan menerapkan Custom Rules, Anda kini memiliki visibilitas penuh terhadap lalu lintas jaringan. Aktivitas mencurigakan yang sebelumnya tidak terlihat mulai dari upaya pengintaian (Port Scanning) hingga serangan agresif (DDoS SYN Flood) kini dapat terpantau secara real-time melalui log server. Dua rule yang kita buat di atas hanyalah permulaan. Anda memiliki kebebasan penuh untuk meracik Custom Rule sendiri sesuai kebutuhan aplikasi Anda mulai dari mendeteksi pola serangan web seperti SQL Injection, memantau percobaan login SSH yang gagal, hingga memblokir akses ke file-file sensitif.
Satu hal penting yang perlu diingat adalah konfigurasi yang kita lakukan saat ini berjalan dalam mode IDS (Intrusion Detection System). Artinya, Suricata bertugas sebagai “CCTV” yang merekam dan memberi peringatan, namun belum memblokir serangan secara otomatis. Meskipun demikian, memiliki data deteksi adalah fondasi utama dalam keamanan siber. Anda tidak bisa menghentikan serangan yang tidak Anda ketahui keberadaannya (You can’t stop what you can’t see).
Selamat mencoba, dan semoga server Anda semakin aman!