A cosa serve concentrarsi quando si indurisce uno stack LAMP? [chiuso]

1

Ho un sito in esecuzione su un VPS. Ho impostato personalmente lo stack LAMP e alcuni altri programmi. Questa è solo la seconda volta che ho creato un VPS e sono un po 'preoccupato per la sicurezza. Ci sono cose di cui dovrei essere a conoscenza (riguardo la mia installazione Linux e lo stack LAMP) che le persone potrebbero usare per ottenere l'accesso al mio VPS e rubare / modificare il mio sito o spegnerlo?

    
posta Hoytman 20.03.2014 - 14:36
fonte

4 risposte

1

Qualsiasi servizio esterno è un rischio per la sicurezza. Hai indicato che stai utilizzando uno stack LAMP, quindi presumo che tu abbia almeno i seguenti servizi in esecuzione:

 1. SSHd
 2. Apache/Nginx
 3. PHP
 4. MySQL

MySQL per impostazione predefinita non è rivolto all'esterno, e non dovresti farlo a meno che non sei coinvolto in un ambiente di clustering o di replica (nel qual caso ci sono alternative a metterlo sul wide web, come una VPN.)

Apache / Nginx + PHP non può essere realizzato internamente se intendi fornire contenuti a persone sul Web, quindi questi saranno i tuoi punti principali di ingresso.

SSHd stesso deve essere pubblico (non sempre, ma per semplicità in questo caso). L'uso di una coppia di chiavi per l'autenticazione e la disattivazione completa dell'autenticazione della password è il tuo miglior sistema per impedire alle persone di ottenere l'accesso tramite questo servizio.

Parliamo di servizi web. Apache, Nginx e PHP. Questi sono i servizi che le persone tenteranno di sfruttare per ottenere l'accesso alla tua macchina, quindi parliamo di come proteggerli.

In primo luogo, vorrai isolare i servizi. Se li hai installati tu stesso significa che assicurati che Apache e Nginx siano in esecuzione come utenti non root.

In secondo luogo, vorrai dare un'occhiata a php-fpm o suphp, che consentono a PHP di operare come utente separato dal tuo server web anche a livello di virtualhost o di directory.

Questo porta a due cose, estrapolando i permessi di root da Apache / Nginx, se qualcuno ottiene il controllo di quel servizio non può influire su nulla tranne l'operazione di quel servizio specifico.

Cambiare l'utente di php (soprattutto su base per sito) isola il modulo PHP dall'interazione con altri siti sulla macchina e con il server web stesso, quindi se hai un client o un sito web con codice sfruttabile su di esso, il tuo intero servizio, altri siti e il tuo computer non sono a rischio.

    
risposta data 20.03.2014 - 14:54
fonte
1

Il tuo codice applicazione.

Qualsiasi codice di applicazione lato server - sia esso PHP / Perl / Python (qualunque sia il significato di P in LAMP per te) è il tuo maggior rischio. Sia che tu lo abbia scritto da te, sia che sia un pacchetto open-source (o commerciale), qualsiasi difetto di codifica potrebbe portare a vulnerabilità di sicurezza come l'iniezione SQL.

Se hai già scritto un codice, dovresti seguire il OWASP Top 10 come minimo. Dovresti anche controllare il tuo codice, magari scansionando con Zap o Rips (che sono gratuiti) o altri strumenti o assumere una società di test delle penne.

Se stai usando software open source o commerciale, dovresti controllare la loro storia di vulnerabilità. Se non ce ne sono affatto, è probabile che il codice non sia mai stato verificato. Se c'è un numero piccolo, è un buon segno. Se ce ne sono molti potresti voler evitare il progetto. I plugin possono causare rischi e applicazioni di base (un grosso problema con CMS come Drupal).

Altre persone hanno menzionato le modifiche alle infrastrutture, ma in generale le impostazioni predefinite sono piuttosto buone in questi giorni. Limiterò SSH all'accesso basato su chiave (anziché alle password) e assicurerò che l'applicazione si connetta al database utilizzando un utente con privilegi ridotti.

    
risposta data 20.03.2014 - 16:12
fonte
0

Quello che stai cercando di ottenere è noto come hardening , cioè rendere più sicuri sistemi e servizi. Ovviamente c'è molto di cui parlare e pensare. Probabilmente vorrai anche avere una prospettiva molto più ampia, perché probabilmente vuoi indurire il tuo server completo, non solo i pochi servizi che hai menzionato sopra.

Personalmente ritengo che la NSA abbia fatto un ottimo lavoro qui. Dai un'occhiata ai loro raccomandazioni per i vari sistemi operativi. Sebbene parlino specificamente di RHEL5 in caso di Linux, la maggior parte dei suggerimenti può essere applicata a qualsiasi distribuzione Linux.

    
risposta data 20.03.2014 - 15:08
fonte
0

Anche se è un po 'datato, la lista di controllo SANS è un buon punto di partenza (io sono sta per andare a cercare la lista della NSA che Karol menziona).

Ma le grandi vittorie vengono dalle cose semplici:

  • scegli password valide,
  • non esegui cose che non ti servono,
  • assicurati di poter identificare quando le patch sono disponibili per il software che stai utilizzando e installale prontamente.
risposta data 20.03.2014 - 16:46
fonte

Leggi altre domande sui tag