Dokumentasi Monitoring Router MikroTik dengan Wazuh SIEM/XDR
IP Address
Wazuh Server: 192.168.105.15 (Static)
Ubuntu Endpoint (rndserver): 192.168.105.16 (Static)
MikroTik Router RG450Gx4: 192.168.19.247 (DHCP)
Konfigurasi
Ubuntu Endpoint (rndserver)
- Pastikan rsyslog1 sudah terinstall, jika belum bisa install menggunakan command:
sudo apt install rsyslog- Setelah itu edit file
/etc/rsyslog.confdengan teks editor, dalam panduan ini teks editor yang digunakan yaitu vim2 dan sesuaikan dengan kode di bawah:
# MikroTik Log Monitoring (RB450Gx4)
$ModLoad imudp
$UDPServerRun 514
#Storing Messages from a Remote System into a specific File
if $fromhost-ip startswith '<YOUR_MIKROTIK_IP_ADDRESS>' then /var/log/mikrotik.log
& ~
Pada terminal ketik command berikut
sudo vim /etc/rsyslog.conf Ganti <YOUR_MIKROTIK_IP_ADDRESS> dengan alamat IP perangkat MikroTik.
Lalu esc pada keyboard dan ketik :wq untuk save dan keluar.

/etc/rsyslog.conf- Buat file
mikrotik.logpada direktori/var/loguntuk menyimpan syslog event:
sudo touch /var/log/mikrotik.log- Ubah ownership file
/var/log/mikrotik.logmenjadi miliksyslogdan group keadm:
sudo chown syslog:adm /var/log/mikrotik.log- Restart service
rsyslog
sudo systemctl restart rsyslog- Paste kode di bawah ke file
/var/ossec/etc/ossec.conf
<localfile>
<log_format>syslog</log_format>
<location>/var/log/mikrotik.log</location>
<out_format>MikroTik-RB450GRx4: $(log)</out_format>
</localfile>
sudo vim /var/ossec/etc/ossec.conf
/var/ossec/etc/ossec.conf- Restart service
wazuh-agent
sudo systemctl restart wazuh-agentMikroTik Router
- Login menggunakan
winboxatau RouterOS WebUI.
Klik pada System > Logging > Rules, lalu tambahkan Topics baru yaitusystemdan Action set keremote.

- Modifikasi rule yang sudah ada seperti error, info, dan warning ke
remote. Atau jika masih ingin menyimpan log di perangkat bisa membuat Rules yang sama namun Action diset kememory.

- Klik pada System > Logging > Actions, untuk konfigurasi pada rules “remote” isi Remote Address dengan IP Endpoint Ubuntu, untuk case ini IP addressnya adalah
192.168.105.16. Lalu untuk Remote Port set ke514.

Pastikan BSD Syslog sudah diaktifkan, Syslog Facility diset ke 3 (daemon), dan Syslog Severity diset ke 0 (emergency).
Wazuh Server
- Buat sebuah custom decoder untuk MikroTik dengan nama
mikrotik_decoders.xmlpada direktori/var/ossec/etc/decoders/
sudo vim /var/ossec/etc/decoders/mikrotik_decoders.xml Isi dari file mikrotik_decoders.xml:
<decoder name="mikrotik">
<prematch>^MikroTik-RB450GRx4: </prematch>
</decoder>
<decoder name="mikrotik1">
<parent>mikrotik</parent>
<regex type="pcre2">\S+ (\w+ \d+ \d+:\d+:\d+) MikroTik user (\S+) (.*?) from (\d+.\d+.\d+.\d+) via (\w+)</regex>
<order>logtimestamp, logged_user, action, ip_address, protocol</order>
</decoder>
<decoder name="mikrotik1">
<parent>mikrotik</parent>
<regex type="pcre2">\S+ (\w+ \d+ \d+:\d+:\d+) MikroTik dhcp-client on (\S+) (.*?) address (\d+.\d+.\d+.\d+)</regex>
<order>logtimestamp, interface, action, ip_address</order>
</decoder>
<decoder name="mikrotik1">
<parent>mikrotik</parent>
<regex type="pcre2">\S+ (\w+ \d+ \d+:\d+:\d+) MikroTik router (\S+)</regex>
<order>logtimestamp, action</order>
</decoder>
mikrotik_decoders.xml- Simpan file decodernya dan restart service
wazuh-manager
sudo systemctl restart wazuh-managerMikroTik Rules
- Buat sebuah custom rule
mikrotik_rules.xmlpada direktori/var/ossec/etc/rules/
sudo vim /var/ossec/etc/rules/mikrotik_rules.xml Isi dari file mikrotik_rules.xml
<group name="Mikrotik,">
<rule id="110000" level="0">
<decoded_as>mikrotik</decoded_as>
<description>Mikrotik-Event</description>
</rule>
<rule id="110001" level="5">
<if_sid>110000</if_sid>
<match>dhcp-client on ether</match>
<description>MikroTik dhcp-client received an IP address $(ip_address)</description>
</rule>
<rule id="110002" level="5">
<if_sid>110000</if_sid>
<match>rebooted</match>
<description>MikroTik router rebooted</description>
</rule>
<rule id="110003" level="5">
<if_sid>110000</if_sid>
<match>logged out from</match>
<description>MikroTik user logged out via $(protocol)</description>
</rule>
<rule id="110004" level="5">
<if_sid>110000</if_sid>
<match>logged in from</match>
<description>MikroTik user logged in from $(ip_address) via $(protocol)</description>
</rule>
</group>
mikrotik_rules.xml- Simpan file decodernya dan restart service
wazuh-manager
sudo systemctl restart wazuh-managerUji Coba
- Login MikroTik via SSH
ssh admin@192.168.19.247
- Login MikroTik via Winbox


Log Pada Wazuh



rsyslog pada server endpoint Ubuntu (rndserver)Referensi
- https://wazuh.com/blog/monitoring-network-devices/
- https://www.denypradana.com/2023/01/14/pembuatan-custom-decoder-rules-pada-wazuh-untuk-router-mikrotik/
- https://dellavedaffa.medium.com/koneksi-logging-mikrotik-denganwazuh-dan-mengirim-notifikasi-log-mikrotik-melalui-bot-telegram-a40f9f0f931f
Related:
Footnotes
-
rsyslog merupakan daemon/sistem pada linux yang berfungsi untuk meneruskan log ke remote server menggunakan protokol UDP atau TCP. ↩
-
Vim (Vi IMproved) merupakan sebuah teks editor pada sistem operasi linux yang telah dikembangkan dari versi terdahulunya yaitu Vi dengan fitur yang lebih banyak dan lebih efisien. Alternatif lain: nano, neovim ↩