Gomma, saldatore, temperino e un pò di vino

Mese: Agosto 2016

Gestire il firewall di mikrotik tramite Fail2Ban

Fail2ban è un’ottimo programma per l’identificazione e il blocco di tentativi di accesso non autorizzato ai nostri servizi.

Un ottima guida sulla sua installazione e configurazione è disponibile a questo link

Oggi andiamo a vedere come far interagire fail2ban con il nostro router mikrotik in modo da poter bloccare sul primo apparato di rete , il router, gli indirizzi ip segnalati come malevoli

Lo script e l’action file sono pubblicati nella repository fail2ban_mikrotik

Il linguaggio di sviluppo è python 3 e necessita di alcune librerie per il corretto funzionamento

Per OS Debian/Ubuntu

apt-get install python3-pip

pip3 install tikapy argparse

Abilitiamo se non ancora attivo il servizio API sulla routerboard e limitiamone l’accesso alla sola rete interna

/ip service enable [find name=api]

/ip service set address=192.168.0.0/24 [find name=api]

Per motivi di sicurezza è preferibile definire sulla routerboard un utente di lettura/scrittura che abbia accesso tramite API, quest’ultimo verrà utilizzato dal nostro script per eseguire le operazione di ban e unban

/user group add name=API policy=read,write,api,!local,!telnet,!ssh,!ftp,!reboot,!policy,!test,!winbox,!password,!web,!sniff,!sensitive,!romon

/user add address=192.168.0.0/24 group=API name=apiuser password=VERYSECUREPASSWORD

Nel mio caso, il server dove è installato fail2ban  ha un’indirizzo ip privato della rete 192.168.0.0/24 l’indirizzo andrà pertanto modificato con la vostra rete interna

Creiamo le regola di firewall che andrà a bloccare il traffico proveniente dagli ip presenti nell’address-list fail2ban

/ip firewall filter add action=drop chain=forward comment="Fail2ban" src-address-list=fail2ban

/ip firewall filter add action=drop chain=input comment="Fail2ban" src-address-list=fail2ban

Installiamo e configuriamo lo script fail2ban_mikrotik.py

cd /tmp/

git clone https://github.com/pincioc/fail2ban_mikrotik.git

Creiamo la cartella /etc/fail2ban/script e salviamo all’interno il file fail2ban_mikrotik.py

mkdir /etc/fail2ban/script

mv /tmp/fail2ban_mikrotik/fail2ban_mikrotik.py /etc/fail2ban/script

chmod +x /etc/fail2ban/script/fail2ban_mikrotik.py

Copiamo il file mtk.conf nella cartella /etc/fail2ban/action.d/

mv /tmp/fail2ban_mikrotik/mtk.conf /etc/fail2ban/action.d/

Andrà modificato il valore MIKROTIKIP e VERYSECUREPASSWORD con l’indirizzo ip del vostro router e la password scelta nel passo precedente

Per ultimo andiamo ad aggiungere alla nostra regola di jail, presente nel file /etc/fail2ban/jail.conf , la nuova azione

action = mtk[list=fail2ban]

 

Bloccateli tutti!

Monitorare lo stato dei peer BGP su apparati Mikrotik tramite Nagios

Bentrovati!

Vi è capitato di dover monitorare lo stato dei peer bgp su dispositivi RouterOS?

Bene, questo è il post che fa per voi. La piattaforma di allerting utilizzata è Nagios ma, se abbiamo già in campo altri sistemi che supportano tali plugin, possiamo con qualche piccola modifica adattarlo alle nostre necessità.

Lo script scritto in perl è scaricabile dalla repository check_bgp_mikrotik

Per poter funzionare dobbiamo soddisfare alcune dipendenze

Per OS Debian/Ubuntu

apt-get install libnagios-plugin-perl nagios-plugins-common

La libreria utilizza per l’accesso tramite API alla routerboard è scaricabile dal repository mikrotik-perl-api

Scarichiamo il contenuto e salviamolo nella stessa directory dove è stato copiato lo script check_bgp_mikrotik.pl

wget https://github.com/efaden/MikroTikPerl/blob/master/MikroTik.pm

Abilitiamo se non ancora attivo il servizio API sulla routerboard e limitiamone l’accesso alla sola rete di monitoraggio

/ip service enable [find name=api]

/ip service set address=192.168.0.0/24 [find name=api]

Per motivi di sicurezza è preferibile definire sulla routerboard un utente di sola lettura che abbia accesso tramite API, quest’ultimo verrà utilizzato dal nostro script per eseguire le interrogazioni

/user group add name=API policy=read,api,!write,!local,!telnet,!ssh,!ftp,!reboot,!policy,!test,!winbox,!password,!web,!sniff,!sensitive,!romon

/user add address=192.168.0.0/24 group=API name=apiuser password=VERYSECUREPASSWORD

Nel mio caso, nagios ha un’indirizzo ip privato della rete 192.168.0.0/24 andrà pertanto modificato con la vostra rete di monitoraggio

Ora verifichiamo che lo script giri correttamente

./check_bgp_mikrotik.pl -H MIKROTIK_IP -u apiuser -p VERYSECUREPASSWORD -b REMOTE_PEER_ADDRESS

Nel caso di peer attivo l’output sarà del tipo (return code 0):

OK – Peer BGP established from 1w20h48m46s

In caso contrario il return code dello script sarà 1 o 2 in funzione della criticità dello stato del peer (Peer disabilitato, peer disconnesso, peer non configurato o router non raggiungibile)

 

Questo è tutto, buon monitoraggio!

© 2021 Openskill's Blog

Tema di Anders NorenSu ↑