Siate sicuri con l’alert di Apache

SICUREZZA

Parlare di sicurezza, di questi tempi, verrebbe da ridere. Succedono tante di quelle cose strane…

 

 

 

 

ANDIAMO AL WEB

Parlando di web o Internet, la sicurezza diventa una necessità imprescindibile, specie per chi amministra un sito web, che sia WordPress , Joomla o altro.

Infatti, anche il clean-web (contrapposto al dark-web) è pieno di insidie  e balordi.

A volte gestire un sito è oggi più un problema di protezione che di contenuti: il blogger deve passare diverso tempo a controllare che tutto vada bene.

I RISCHI

Un sito è messo a rischio da diverse cause, a volte congiunte:

  • modifica dei permessi (o mancanza di gestione dei permessi)
  • plugin o temi “sospetti”
  • password deboli

CHE FARE?

Beh, questa volta userò un approccio diverso: la verifica degli accessi dalla rete. Si tratta quindi di un allarme ad attacco avvenuto.

ATTACCATI!

Durante un attacco al nostro sito, l’hacker od organizzazione, deve passare da un servizio fondamentale del nostro sito: il WEB-SERVER.

Sui diversi sistemi operativi si tratta del potente Apache: senza dubbio uno dei migliori software.

Se gestiamo un sito o un blog, avremo probabilmente un CMS tipo WordPress (ma questo articolo vale per tutti i CMS, purchè basati su Apache).

Ora dobbiamo sapere che tutti gli accessi che arrivano a WordPress devono passare da Apache. E Apache registra tutte le connessioni, proprio tutte.

Quindi partendo dal log di Apache potremo capire se siamo sotto attacco e da parte di chi e decidere come reagire. Serve insomma una vedetta, un allarme.

ECCOLO!

Qui il punto è importante: queste note valgono per chi utilizza un sistema basato su Unix/linux per Windows lo affronteremo la volta successiva.

Quindi, ricapitolando, dovrete avere l’accesso di root o equivalente.

INGREDIENTI

Sono davvero pochi e semplici:

  • crontab
  • shell script
  • account email

INSTALLAZIONE

Per essere chiari: alcuni percorsi (o path) è potrebbero variare da sistema a sistema. Se non siete sicuri chiedete ad un amico o collega di aiutarvi.

Poniamo che il nostro Apache abbia la home in /var/www quindi ecco i passi:

cd /var/www
mkdir admin
cd admin
nano chklog.sh

ora copiate lo script variando eventualmente

  • il percorso (leggasi sopra)
  • la password dell’account che utilizzerete per l’invio delle email
  • userid dell’account che utilizzerete per l’invio delle email
  • destinatario (voi stessi o altro)
#!/bin/sh
# FLW, 2018
# mauro rossolato, 2.11.2018 
MDATA=`date --date="$(date -d "-1 hour") " +'%d/%b/%Y:%H:'`
MNUMH=`grep -i "${MDATA}" /var/log/apache2/fablabway2.log |wc -l`
if [ $MNUMH -gt 210 ]; then
echo "there are $MNUMH connections in the past hour" | mailx -v -s "alert www" -S smtp="smtp.gmail.com:587" -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="accoun@bluewin.ch" -S smtp-auth-password='******'  destinatario@qqq.com
  echo "${MDATA};${MNUMH};email sent" >> /var/www/admin/chklog.dat
else
    echo "${MDATA};${MNUMH};regular" >> /var/www/admin/chklog.dat
fi

non vanno dimenticati i permessi sul file

chmod 755 chklog.sh

e quindi schedulare con crontab, ad ogni ora:

crontab -e

ed aggiungere la riga:

# m h  dom mon dow   command
0       *       *       *       *       /var/www/admin/chklog.sh

 

FUNZIONAMENTO

Ogni ora lo script chklog.sh verifica che il numero di connessioni nell’ultima ora sia entro il limite prefissato. Nello script il valore è impostato a 200, ma volendo lo si può cambiare. Se il limite viene superato verrà inviata una email ed a quel punto potrete decidere il da farsi.

Ogni controllo orario vien eregistrato sul server nella directory /var/www/admin. si tratta di un file di testo, separato da “;”. Così se avrete voglia potrete sempre caricarlo in un foglio elettronico per avere un grafico!

grafico degli accessi, generato da chklog.dat

Leave a Reply