Monitoring Log Perangkat Agentless Mikrotik dengan Wazuh dan mengirim notifikasi Log Mikrotik melalui Bot Telegram

Dellave Daffa
7 min readNov 4, 2023

--

Monitoring Log Perangkat Agentless Mikrotik dengan Wazuh dan mengirim notifikasi Log Mikrotik melalui Bot Telegram

Skema :

Mikrotik Log (Mengirim Logging) → Rocky Linux Rsyslog Server (menerima dan mengirim Mikrotik.log) → Wazuh Server (Dapat menampilkan log dengan lebih baik dan mengirim Log tersebut ke Bot Telegram)

Mikrotik : 192.168.0.1

Rocky Linux Rsyslog Server : 192.168.0.6 “file mikrotik.log”

Wazuh Server : 192.168.0.178

Port :514/udp

Konfigurasi di sisi Rocky Linux Rsyslog Server

  • Buat File di /etc/rsyslog.d/server.conf untuk menerima Log dari Perangkat Mikrotik
$ModLoad imudp
$UDPServerRun 514
#Tembak mikrotik
:fromhost-ip,isequal,"192.168.0.1" /var/log/mikrotik/mikrotik-core.log

Mari kita bahas setiap bagian secara terpisah:

  • $ModLoad imudp: Ini adalah perintah yang digunakan untuk memuat modul imudp di rsyslog. Modul ini memungkinkan rsyslog untuk menerima pesan log melalui protokol UDP. Dengan kata lain, ini mengaktifkan rsyslog untuk menerima pesan log yang dikirim melalui jaringan menggunakan UDP.
  • $UDPServerRun 514: Perintah ini menjalankan server UDP pada port 514. Port 514 adalah port yang umumnya digunakan untuk menerima pesan log melalui protokol syslog. Dengan ini, rsyslog akan mendengarkan pesan log yang dikirimkan melalui UDP pada port 514.
  • #Tembak mikrotik: Ini adalah komentar dalam konfigurasi rsyslog, yang tidak memiliki dampak langsung pada operasi rsyslog. Komentar digunakan untuk memberikan penjelasan atau catatan terkait dengan konfigurasi.
  • :fromhost-ip,isequal,"192.168.0.1" /var/log/mikrotik/mikrotik-core.log: Ini adalah bagian dari aturan rsyslog. Aturan ini memberi tahu rsyslog apa yang harus dilakukan dengan pesan log yang diterima. Aturan ini berarti jika pesan log berasal dari alamat IP 192.168.0.1, maka pesan log tersebut akan disimpan dalam file log lokal /var/log/mikrotik/mikrotik-core.log. Ini berguna jika Anda ingin menyimpan pesan log yang berasal dari perangkat dengan alamat IP 192.168.0.1 dalam file log tertentu.

Dengan konfigurasi ini, rsyslog akan menerima pesan log yang dikirim melalui UDP pada port 514 dan menyimpan pesan log tersebut dalam file /var/log/mikrotik/mikrotik-core.log jika pesan log tersebut berasal dari alamat IP 192.168.0.1. lalu jangan lupa restart rsyslog dengan cara systemctl restart rsyslogd.

  • Cek bahwa Log dari Perangkat Mikrotik sudah diterima oleh Rocky Linux Rsyslog Server dengan cara tail -f /var/log/mikrotik/mikrotik-core.log
  • Buat File di /etc/rsyslog.d/wazuh.conf untuk mengirim file mikrotik-core.log ke Wazuh Server
$ModLoad imfile
$InputFileName /var/log/mikrotik/mikrotik-core.log
$InputFileTag mikrotik:
$InputFileStateFile mikrotik-statefile
$InputFileSeverity info
$InputFileFacility local7
$InputRunFileMonitor

local7.* @192.168.0.178:514

Mari kita bahas setiap barisnya secara terpisah :

  • $ModLoad imfile: Ini adalah perintah yang digunakan untuk memuat modul imfile di rsyslog. Modul ini memungkinkan rsyslog untuk memantau file log secara real-time.
  • $InputFileName /var/log/mikrotik/mikrotik-core.log: Ini adalah lokasi dan nama file log yang akan dipantau oleh rsyslog. Dalam hal ini, file log yang dipantau adalah /var/log/mikrotik/mikrotik-core.log.
  • $InputFileTag mikrotik:: Tag yang akan ditambahkan pada pesan log yang diterima dari file ini. Dalam hal ini, setiap pesan log akan ditandai dengan "mikrotik:".
  • $InputFileStateFile mikrotik-statefile: Ini adalah file yang digunakan untuk menyimpan informasi status pemantauan file log. File ini akan digunakan oleh rsyslog untuk melacak posisi terakhir yang dibaca dalam file log. Dengan ini, rsyslog akan dapat melanjutkan pemantauan dari titik terakhir setiap kali ia dijalankan kembali.
  • $InputFileSeverity info: Ini mengatur tingkat keparahan yang akan diberikan kepada pesan log yang dibaca dari file. Dalam hal ini, pesan log akan diberi tingkat keparahan "info".
  • $InputFileFacility local7: Ini mengatur fasilitas (facility) yang akan diberikan kepada pesan log yang dibaca dari file. Dalam hal ini, pesan log akan diberi fasilitas "local7".
  • $InputRunFileMonitor: Ini adalah perintah yang mengaktifkan pemantauan file log.
  • local7.* @192.168.0.178:514: Ini adalah aturan yang mengarahkan pesan log dengan fasilitas "local7" (sesuai dengan konfigurasi sebelumnya) untuk dikirim ke alamat IP 192.168.0.178 melalui protokol UDP pada port 514. Dengan ini, pesan log yang berasal dari file /var/log/mikrotik/mikrotik-core.log dengan tingkat keparahan "info" akan dikirim ke alamat tersebut.

Dengan konfigurasi ini, rsyslog akan memantau file log Mikrotik secara real-time, menandainya dengan “mikrotik:”, dan mengirim pesan log tersebut ke alamat IP 192.168.0.178 pada port 514 menggunakan protokol UDP. lalu jangan lupa restart rsyslog dengan cara systemctl restart rsyslogd.

Konfigurasi di sisi Wazuh Server

  • Konfigurasi dan tambahkan syntax ini di /var/ossec/etc/ossec.conf
<remote>
<connection>syslog</connection>
<port>514</port>
<protocol>udp</protocol>
<allowed-ips>192.168.0.1/24</allowed-ips>
<local_ip>192.168.0.178</local_ip>
</remote>

<syslog_output>
<server>192.168.0.178</server> <!-- Ganti dengan alamat IP server syslog jarak jauh / wazuh -->
<port>514</port> <!-- Ganti dengan port yang digunakan oleh server syslog jarak jauh / wazuh -->
</syslog_output>

Mari kita jelaskan setiap bagian secara lebih rinci:

  • <remote>:
  • <connection>: Menentukan tipe koneksi yang digunakan. Dalam hal ini, digunakan koneksi "syslog," yang mengacu pada pengiriman pesan log menggunakan protokol syslog.
  • <port>: Menentukan port yang digunakan untuk koneksi syslog. Dalam contoh ini, port yang digunakan adalah 514, yang adalah port umum untuk protokol syslog.
  • <protocol>: Menentukan protokol yang digunakan untuk koneksi. Dalam contoh ini, digunakan protokol "udp," yang merupakan protokol yang biasa digunakan dalam syslog.
  • <allowed-ips>: Menentukan rentang alamat IP yang diizinkan untuk mengirim pesan log ke OSSEC. Dalam contoh ini, rentang alamat IP adalah 192.168.0.1/24, yang berarti semua alamat IP dalam subnet tersebut diizinkan.
  • <local_ip>: Menentukan alamat IP yang digunakan oleh OSSEC untuk mengirim pesan log ke server syslog. Dalam contoh ini, alamat IP yang digunakan adalah 192.168.0.178.
  • <syslog_output>:
  • <server>: Menentukan alamat IP server syslog jarak jauh yang akan menerima pesan log dari OSSEC. Anda perlu menggantikan nilai ini dengan alamat IP sesuai dengan server syslog yang sebenarnya.
  • <port>: Menentukan port yang digunakan oleh server syslog jarak jauh untuk menerima pesan log. Anda perlu menggantikan nilai ini dengan port yang digunakan oleh server syslog yang sebenarnya.
  • Lalu jangan lupa restart wazuh-manager dengan cara systemctl restart wazuh-manager

2. Buat file /etc/rsyslog.d/wazuhserver.conf dan /etc/rsyslog.conf dan tambahkan text berikut supaya Rsyslog Wazuh mendapatkan lognya juga dan jika ingin diolah dari Rsyslog untuk keperluan yang lain juga bisa. lalu jangan lupa restart rsyslog dengan cara systemctl restart rsyslogd.

$ModLoad imudp
$UDPServerRun 514
:fromhost-ip,isequal,"192.168.0.6" /var/log/rocky/mikrotikdarirocky.log

3. Cek di /var/log/messages jika Log dari Rocky Linux Rsyslog Server sudah diterima oleh Wazuh Server dengan cara tail -f /var/log/messages.

Buat File Rules untuk Monitoring Log Mikrotik yang sudah didapat dari Rocky Linux Rsyslog di sisi Wazuh Server

  • Buat File Rules di direktor /var/ossec/ruleset/rules/ dengan nama mikrotik-core.xml
<group name="syslog">
<rule id="100080" level="5">
<match>login failed: invalid username or password</match>
<group>-Mikrotik-Core-Rst,authentication_failed</group>
<mitre>
<id>T1078,T1110</id>
</mitre>
<description>Hotspot Mikrotik - User Login Failed</description>
</rule>

Mari kita jelaskan setiap elemen dalam konfigurasi ini:

  • <group name="syslog">: Ini adalah grup atau kategori yang diberikan kepada peraturan ini, yaitu "syslog". Ini memungkinkan Anda untuk mengelompokkan peraturan-peraturan yang berhubungan dengan pesan log syslog.
  • <rule id="100080">: Ini adalah ID unik untuk peraturan ini, yang digunakan untuk mengidentifikasinya secara unik dalam konfigurasi Wazuh.
  • <level="5">: Ini adalah tingkat keparahan dari peraturan ini. Dalam hal ini, peraturan memiliki tingkat keparahan 5, yang menunjukkan tingkat yang cukup tinggi. Peraturan dengan tingkat keparahan lebih tinggi akan lebih serius dan memerlukan perhatian lebih.
  • <match>login failed: invalid username or password</match>: Ini adalah pola pencarian (pattern matching) yang digunakan untuk mencocokkan pesan log syslog. Jika pesan log yang diterima oleh Wazuh cocok dengan pola ini, maka peraturan ini akan diaktifkan. Dalam hal ini, peraturan ini akan diaktifkan jika pesan log mengandung teks "login failed: invalid username or password".
  • <group>-Mikrotik-Core-Rst,authentication_failed</group>: Ini adalah grup-grup yang akan ditugaskan kepada peraturan ini jika peraturan ini diaktifkan. Dalam hal ini, peraturan ini akan menambahkan pesan ke dalam grup "Mikrotik-Core-Rst" dan "authentication_failed". Grup-grup ini berguna untuk mengorganisasi dan mengkategorikan pesan-pesan yang diterima oleh Wazuh.
  • <mitre>: Ini adalah elemen yang menghubungkan peraturan ini dengan taktik-taktik MITRE ATT&CK.
  • <id>T1078,T1110</id>: Ini adalah ID taktik MITRE ATT&CK yang berhubungan dengan peraturan ini. Dalam hal ini, peraturan ini terkait dengan taktik T1078 (Valid Accounts) dan T1110 (Brute Force).
  • <description>Hotspot Mikrotik - User Login Failed</description>: Ini adalah deskripsi singkat yang menjelaskan tujuan atau makna dari peraturan ini. Dalam hal ini, peraturan ini dirancang untuk mendeteksi ketika login pengguna pada hotspot Mikrotik gagal.

Dengan konfigurasi ini, Wazuh akan memantau pesan log syslog dan mengaktifkan peraturan ini jika menemukan pesan yang sesuai dengan pola pencarian yang telah ditentukan. Saat peraturan ini diaktifkan, pesan log akan ditambahkan ke dalam grup-grup yang disebutkan, dan informasi taktik MITRE ATT&CK juga akan dicatat. Ini membantu dalam pendeteksian dan pelaporan insiden keamanan yang berhubungan dengan percobaan login yang gagal pada hotspot Mikrotik. Lalu lakukan restart wazuh-manager dengan cara systemctl restart wazuh-manager.

  • Cek apakah Rules tersebut sudah berhasil atau belum dengan cara sengaja salah autentikasi di hotspot mikrotik lalu bisa dilihat di log yang sudah didapatkan oleh wazuh dari Rocky Linux Rsyslog server dengan cara tail -f /var/log/messages | grep Login Failed
  • Cek di Security Event pada Wazuh

Kirim Notifikasi ke Wazuh

Kunjungi artikel yang pernah saya buat :

https://dellavedaffa.medium.com/integrasi-wazuh-dengan-telegram-78c7b5f20419

Note : untuk group di konfigurasi custom-telegram tidak digunakan, bisa dengan memberi karakter “#”

Contoh Hasil nya :

--

--

Dellave Daffa
Dellave Daffa

Written by Dellave Daffa

I love sharing insights on cybersecurity and linux operational. I use Indonesian for cybersecurity so fellow Indonesians can join in. Let's explore together!

Responses (1)