Per chi non lo sapesse MAC telnet è un'implementazione L2 (layer 2) di telnet. E' possibile trovarla in tutti i prodotti Mikrotik, in modalità sia client che server. Questo protocollo di comunicazione è molto comodo per vari aspetti. Mentre, dal punto di vista della sicurezza è un vero e proprio buco nero, in quanto si porta dietro tutte le criticità di telnet e per di più lavora ad un livello più basso del modello OSI.
Il sistema però risulta comodo e molto efficace, anche non avendo assegnato nessun IP ad un determinato host noi riusciremo ad accedervi, identificandolo con il proprio MAC address.
Un'anima pia ha sviluppato un pezzo di codice per linux che realizza proprio questa funzionalità. Va a implementare un server MAC telnet con corrispettivo client, il MAC ping e un tool di discovery per apparati Mikrotik.
Tutte le info sono disponibili a questo indirizzo, mentre i sorgenti sono disponibili su GitHub.
Personalmente la ho testata su CentOS ed in seguito posterò anche lo script di init per distro CentOS/RedHat.
L'installazione non è complicata, sono però necessari i tool di sviluppo in quando non sono riuscito a trovare un pacchetto .rpm già pronto per l'uso. Compilazione terminata sarà necessario editare il file /etc/mactelnetd.users e aggiungere gli utenti e relative password abilitati al login via MAC telnet.
Quando il servizio è in esecuzione sarà possibile effettuare il login sull'host da un qualsiasi Mikrotik fisicamente collegato in L2. Non è cosa da poco. Molto comodo in casi di emergenza dove la macchina non è più utilizzabile via SSH.
La criticità maggiore è che appunto qualsiasi device che deve in L2 il nostro server sarà in grado di tentare un login. Tutti i tentativi di login vengono loggati in /var/log/messages però proprio perchè si opera ad un così basso livello non sarà possibile applicare regole di fail2ban per bloccare eventuali tentativi attacchi brute-force. Scordatevi iptables. Sarà necessario usare un firewall layer 2.