Come installare e mettere in sicurezza Memcached su Ubuntu 20.04

Come installare e mettere in sicurezza Memcached su Ubuntu 20.04

Pubblicato il: 16 novembre 2020

Cache Ubuntu Web Hosting

Introduzione

I sistemi che permettono la memorizzazione in cache degli oggetti di memoria possono migliorare le performance dei database back-end in diversi modi come, ad esempio, salvando temporaneamente le informazioni in memoria e trattenendo le righe (records) più richieste o richieste di recente.

In questo modo, potrai ridurre il numero di interrogazioni al database e di conseguenza aumentare la velocità delle tue applicazioni web.

In questo tutorial imparerai a insrallare Memcached sul tuo server Ubuntu 20.04 e a metterlo in sicurezza, configurandolo per il collegamento alla tua interfaccia di rete locale o privata e abilitando l'autenticazione SASL.

Per prima cosa dovrai connetterti al tuo server tramite una connessione SSH. Se non l’hai ancora fatto, ti consigliamo di seguire la nostra guida per connetterti in sicurezza con il protocollo SSH. In caso di server locale puoi passare al punto successivo e aprire il terminale del tuo server.

Installare Memcached dalla Repository ufficiale

Se Memcached non è già installato sul tuo server, puoi installarlo dalle repositories ufficiali di Ubuntu.

Prima di tutto, accertati che il tuo indice del pacchetto locale si aggiornato, tramite il comando:

$ sudo apt update

In secondo luogo, installa il pacchetto ufficiale tramite il comando:

$ sudo apt install memcached

Ti suggeriamo anche di installare una libreria di tools per lavorare meglio con il tuo server Memcached. Ti basterà semplicemente inserire il comando:

$ sudo apt install libmemcached-tools

Ora che hai installato memcached e i diversi tools che ti aiuteranno a testare la connettività del server, lo step successivo sarà creare una configurazione sicura.

Rendere sicura la configurazione di Memcaching

Per assicurarti la protezione da attacchi DoS, è importante verificare che la tua istanza di Memcached sia in ascolto sull’interfaccia locale 127.0.0.1. Di default, il parametro impostato sull’interfaccia locale dovrebbe essere -1.

Per controllare il parametro, apri il file di configurazione di Memcached contenuto nel percorso /etc/memcached.conf . Da terminale, puoi eseguire questa operazione tramite il comando:

$ sudo nano /etc/memcached.conf

Eccoti ora nel file di configurazione /etc/memcached.conf.

All’interno del file, spostati sulla parte relativa alla configurazione dell’interfaccia, individuando questa linea:

-l 127.0.0.1

Se la linea appare come mostrato sopra, la configurazione di default sarà impostata e non avrai bisogno di procedere con ulteriori modifiche.

Se avessi bisogno di modificare questa impostazione per renderla più “aperta”, ti suggeriamo comunque di disabilitare il protocollo UDP poiché più vulnerabile agli attacchi DoS rispetto al TCP.

Per disabilitare solo il protocollo UDP, basterà aggiungere alla fine del file di configurazione la seguente linea:

-U 0

Per applicare i cambiamenti delle impostazioni, è necessario che tu segua i seguenti passaggi:

  • Salva e chiudi il file /etc/memcached.conf;
  • Riavvia Memcached , tramite il comando:
    $ sudo systemctl restart memcached

Per verificare che i cambiamenti siano stati apportati con successo, dovrai controllare che Memcached sia legato all’interfaccia locale e riceva solo connessioni TCP.

Per farlo, digita il comando:

$ sudo netstat -plunt

Consentire l’accesso su una rete privata

Nei passi precedenti hai configurato Memcached su un interfaccia locale (127.0.0.1), rendendo sicura l’interfaccia da attacchi DoS esterni.

Ma come comportarti se avessi bisogno di collegarti con server esterni?

In tal caso, occorrerà mettere Memcached, modificando la sua configurazione, in ascolto su una rete privata.

Limitare gli IP con i Firewall

Prima di sistemare le impostazioni di configurazione, è opportuno che tu imposti delle regole nel tuo firewall per limitare le connessioni al tuo server Memcached.

Avrai bisogno, in primis, di conoscere l’indirizzo IP privato del server del client, per poter configurare le tue regole nel firewall.

Nel nostro caso, utilizzeremo il firewall UFW. Se il firewall UFW non è installato sul tuo server, puoi seguire la nostra guida su Come installare e configurare UFW Firewall su Ubuntu 18.04.

Per limitare gli accessi alla tua istanza di Memcached, dovrai inserire quindi:

$ sudo ufw allow from client_server_IP_privato/32 to any port 11211

Impostata questa modifica, sarai pronto a forzare il servizio di Memcached sull’interfaccia della tua rete privata.

Legare Memcached all’interfaccia della rete privata

Ora che il firewall è stato configurato, puoi correggere la configurazione di Memcached per metterlo in ascolto sull’interfaccia della tua rete privata, invece che sull’interfaccia locale.

Prima di tutto, apri il file di configurazione di Memcached, come visto precedentemente, tramite il comando:

$ sudo nano /etc/memcached.conf

Cerca, all'interno del file, la seguente linea, che avevi controllato nei passi precedenti:

-1 127.0.0.1
E cambia l’indirizzo inserendo quello corrispondente all’interfaccia della rete privata del tuo server:
-1 memcached_IP_privato_server

Per applicare le modifiche, salva e chiudi il file di configurazione.

Riavvia quindi il servizio Memcached tramite il comando:

$ sudo systemctl restart memcached

Verifica, infine, le nuove impostazioni con netstat:

$ sudo netstat -plunt

Verifica, per maggiore sicurezza, che tu possa connetterti tramite il tuo client esterno autorizzato e che, connettendoti invece con un client non autorizzato, tu venga bloccato dal firewall.

A questo punto avrai protetto correttamente il tuo server Memcached, configurandolo per il collegamento alla tua interfaccia di rete locale o privata e abilitando l'autenticazione SASL.