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.conf
dengan 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.log
pada direktori/var/log
untuk menyimpan syslog event:
sudo touch /var/log/mikrotik.log
- Ubah ownership file
/var/log/mikrotik.log
menjadi miliksyslog
dan 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-agent
MikroTik Router
- Login menggunakan
winbox
atau RouterOS WebUI.
Klik pada System > Logging > Rules, lalu tambahkan Topics baru yaitusystem
dan 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.xml
pada 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-manager
MikroTik Rules
- Buat sebuah custom rule
mikrotik_rules.xml
pada 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-manager
Uji Coba
- Login MikroTik via SSH
ssh [email protected]
- 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 ↩