Protezione di un nuovo server Ubuntu [chiuso]


Risposte:


25

Non riesco a pensare a nessuna modifica specifica di Ubuntu, ma eccone alcune che si applicano a tutte le distribuzioni:

  1. Disinstallare tutti i pacchetti non necessari
  2. Utilizzare l'autenticazione solo con chiave pubblica in SSH
  3. Disabilita gli accessi root tramite SSH (non si applica a Ubuntu)
  4. Usa le impostazioni di produzione per PHP (consigliato php.ini)
  5. Configurare MySQL per utilizzare solo i socket

Naturalmente questo elenco non è completo e non sarai mai completamente al sicuro, ma copre tutti gli exploit che ho visto nella vita reale.

Inoltre, gli exploit che ho visto erano quasi sempre legati al codice utente non sicuro, non alla configurazione non sicura. Le configurazioni predefinite in minimale, le distribuzioni dei server tendono ad essere piuttosto sicure.


1
Cambia la porta per servizi come MySQL (inutile se configurarlo per usare solo socket), FTP (anche se, se sei sicuro, non dovresti usare affatto FTP), SSH e tutti i tipi.
Josh Hunt,

3
"Disinstalla tutti i pacchetti non necessari". OK. È piuttosto vago. Quali pacchetti "non necessari"?
Luca,

2
@Luke: tutto ciò che non stai utilizzando non è necessario. Servizi più specifici e in esecuzione di cui non hai bisogno mettono le macchine in un rischio inutile.
Andrioid,

@Luke: cat / etc / services dovrebbe darti alcune idee.
jeshurun,

17

Una cosa veloce che faccio presto è installare DenyHosts . Esaminerà regolarmente / var / log / secure, cercando accessi non riusciti e, dopo un paio di errori, bloccherà l'IP. L'ho impostato per bloccare dopo il primo utente non di questo tipo, al secondo tentativo di root e dopo un paio di tentativi per utenti reali (nel caso in cui si incasini, ma si dovrebbe usare una chiave pubblica SSH per accedere).


3
mentre ti colleghi alla homepage di sourceforge - denyhosts è disponibile anche nel repository (universo) tramite "sudo aptitude install denyhosts"
Olaf,

buon punto @olaf. La maggior parte dei server su cui l'ho installato erano RHEL, dove si trova anche nel repository DAG.
Alister Bulman,

+1 per denyhosts
wimvds

2
DenyHosts sembra rilevare e bloccare solo attacchi di forza bruta ssh. Una scelta migliore sarebbe fail2ban (è disponibile anche nei repository), che monitora una varietà di cose, tra cui i log di Apache tra le altre cose. Dai un'occhiata
jeshurun


5

Di solito installo RKHunter, che ricerca i rootkit e fa i controlli di integrità di vari importanti binari di sistema. È nel repository standard e verrà eseguito quotidianamente da cron. Non è perfetto, dal punto di vista della sicurezza, ma è un articolo a basso sforzo da aggiungere e fornisce una misura di protezione.


4

Installa il logcheck, ma modifica in modo da non ricevere mai messaggi da eventi regolari, altrimenti avrai l'abitudine di ignorare le e-mail.

Controlla quali processi sono in ascolto utilizzando netstat e assicurati che non sia in esecuzione nulla che non debba essere eseguito. Molti demoni possono essere configurati solo per l'ascolto sull'IP interno (o localhost) anziché su tutte le interfacce.


3

Fai ciò che Can suggerisce ...

Nmap l'host e disabilita tutti i servizi non essenziali. Usa iptables se necessario.


2
Su qualsiasi server accessibile via Internet, iptables è sempre necessario. ;-)
Christopher Cashell,

3

Se vai in qualsiasi punto vicino a Internet con il server, installa un sistema di rilevamento delle intrusioni come Snort.


3

Utilizzare partizioni separate per varie directory come /tmpo /vare montarle con nosuid, nodeve noexecse possibile.


3

Alcuni suggerimenti per il firewall.

Impara a usare un firewall e i concetti di come bloccare correttamente una scatola. La modifica delle porte predefinite è in gran parte inutile; una corretta configurazione dell'applicazione e del firewall sono molto più importanti.

Entrambi sono nei repository di Ubuntu:

FireHOL

ha una documentazione eccezionale e una sintassi molto facile da imparare. Sono stato in grado di impostare un gateway / firewall in venti minuti. L'unica ragione per cui mi sono allontanato da questo è che non sembra essere mantenuto (ultima versione 2 anni fa). Non significa che non funziona, ma ...

ferm

è un altro. Più sintassi simile a iptables, ma stesso concetto. Più community mantenute rispetto a FireHOL, ma richiede più tempo per essere raccolte.

Shorewall

è quello che uso attualmente. La sua documentazione è ampia e il suo formato di configurazione è tabulare. Mi ci sono voluti circa un'ora e mezza per capire tutti i file necessari (6) per far funzionare una configurazione firewall / gateway funzionante. È abbastanza potente. SUGGERIMENTO: le pagine man per i diversi file di configurazione sono DAVVERO utili!

Tutti questi caricano le configurazioni del firewall da un file di configurazione. Molto efficace, più facile da usare rispetto a iptables e (a mio avviso) più facile da usare e gestire rispetto a ufw.

Altro:

  • Secondo le raccomandazioni per l'uso della chiave SSH.

  • Imposta un IDS.

  • Informazioni su AppArmor. Limita l'accesso ai file degli eseguibili solo alle directory e ai file specificati necessari. Simile a SELinux nel mondo RHEL. È installato e abilitato con 'profili' preconfigurati per molti programmi ben utilizzati.


2

Oltre ad altri suggerimenti qui ne citerò tre che sono ovvi ma forse vale la pena menzionare per completezza:

  1. Se non pensi di aver bisogno di un firewall, ripensaci. ufw è semplice ma progettato per Ubuntu e basato su iptables
  2. Aggiorna i pacchetti: applica almeno tutte le patch di sicurezza
  3. Documenta cosa hai fatto per proteggere il server e perché. Includi i processi di configurazione (automatizzati) per monitorare i log, testare la configurazione e segnalare gli aggiornamenti di sicurezza necessari.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.