Ogni pannello su un indirizzo pubblico viene provato di continuo da macchine che scorrono elenchi di nomi utente e password trafugate. Il volume non è il segno che qualcuno ce l'abbia con lei. Diventa una violazione nel momento in cui un account ha una password che compare in uno di quegli elenchi.
Veda che cosa sta succedendo
sudo grep -c "Failed password" /var/log/auth.log
sudo awk '/Failed password/ {print $(NF-3)}' /var/log/auth.log | sort | uniq -c | sort -rn | head
Le quattro cose che lo chiudono
- Doppio fattore su ogni account di amministrazione. Una password corretta da sola smette di bastare: veda doppio fattore sul pannello.
- Limite di frequenza, così una macchina ottiene una manciata di tentativi al minuto invece di migliaia: veda limitare un endpoint di accesso.
- Fail2ban, per bandire l'indirizzo dopo pochi fallimenti: veda che cosa ferma Fail2ban.
- Nessun account condiviso. Una persona, un accesso, così una revoca è una revoca sola.
Rinomini admin, ma non ci conti
Cambiare il nome utente ovvio toglie gran parte del rumore automatico, perché quegli elenchi sono corti sui nomi e lunghi sulle password. Non è una protezione: il nome di solito si scopre dal sito stesso.
Limiti da dove il pannello risponde, punto
# nginx: the panel only answers to the office
location /admin/ {
allow 203.0.113.0/24;
deny all;
}
Un accesso riuscito da un paese inatteso, a un'ora insolita, dopo una lunga serie di fallimenti: ecco lo schema che conta. Metta l'allarme sul successo, non sui fallimenti: i fallimenti ci sono sempre e a un certo punto nessuno li legge più.
Se scopre che un account è stato violato, cambiare quella password non chiude la faccenda. Legga riconoscere un sito compromesso prima di dare per scontato che non sia andata oltre.