Perché dovrei avere bisogno di un firewall se il mio server è ben configurato?


59

Gestisco una manciata di server basati su cloud (VPS) per l'azienda per cui lavoro.

I server sono installazioni Ubuntu minime che eseguono bit di stack LAMP / raccolta dati in entrata (rsync). I dati sono grandi ma non personali, finanziari o qualcosa del genere (cioè non così interessante)

Chiaramente qui le persone chiedono per sempre di configurare i firewall e simili.

Uso un sacco di approcci per proteggere i server, ad esempio (ma non limitato a)

  • ssh su porte non standard; nessuna digitazione password, solo chiavi ssh conosciute da ips noti per il login ecc
  • https e shell ristrette (rssh) generalmente solo da chiavi / ips conosciute
  • i server sono minimi, aggiornati e aggiornati regolarmente
  • usare cose come rkhunter, cfengine, lynis denyhosts ecc. per il monitoraggio

Ho una vasta esperienza nell'amministratore di unix sys. Sono sicuro di sapere cosa sto facendo nelle mie configurazioni. Configuro file / etc. Non ho mai sentito il bisogno irresistibile di installare cose come i firewall: iptables ecc.

Metti da parte per un momento i problemi di sicurezza fisica del VPS.

Q? Non riesco a decidere se sono ingenuo o la protezione incrementale che un fw potrebbe offrire vale lo sforzo di apprendimento / installazione e la complessità aggiuntiva (pacchetti, file di configurazione, supporto possibile ecc.) Sui server.

Ad oggi (touch wood) non ho mai avuto problemi con la sicurezza, ma non ne sono nemmeno soddisfatto.



Dovresti provare su security.stackexchange.com
AviD

6
Dammi il tuo indirizzo IP e ti mostrerò perché hai bisogno di un firewall.
GregD,

Risposte:


87

Noto che hai fatto un ottimo lavoro abbattendo diversi demoni e da quello che hai detto penso sia improbabile che ti esponga a problemi attraverso quei servizi che hai già assicurato. Questo ti lascia ancora in uno stato "tutto è permesso tranne quello che ho proibito", e non puoi uscire da quello stato dando la caccia al demone dopo il demone e assicurandoli uno per uno.

Un firewall configurato su DENY ANY ANY per impostazione predefinita ti porta in una modalità operativa "tutto è proibito tranne ciò che è consentito", e per molti anni ho scoperto che sono migliori.

In questo momento, dato a un utente legittimo con una shell legittima sul tuo sistema, potrebbe decidere di eseguire un demone locale senza privilegi per il proxy di richieste Web per Internet, o avviare la condivisione di file sulla porta 4662 o aprire accidentalmente un listener usando -g con tunneling port ssh, non capendo cosa fa; oppure un'installazione sendmail potrebbe lasciarti in esecuzione un MUA sulla porta 587 che è stato configurato in modo errato nonostante tutto il lavoro che hai fatto per proteggere il sendail MTA sulla porta 25; o potrebbero accadere cento e una cosa che aggirano la tua sicurezza attenta e riflessiva semplicemente perché non c'erano quando pensavi attentamente a cosa proibire.

Capisci cosa intendo? Al momento, hai fatto molti sforzi per proteggere tutte le cose che sai e sembra che non ti morderanno. Ciò che potrebbe morderti sono le cose che non conosci o che non sono nemmeno lì, in questo momento.

Un firewall che per impostazione predefinita è DENY ANY ANY è il modo sysadmin di dire che se arriva qualcosa di nuovo e apre un listener di rete su questo server, nessuno sarà in grado di parlargli fino a quando non avrò dato il permesso esplicito .


Questa è una risposta molto perspicace, in particolare il testo sul passaggio da "tutto è permesso ..." a "tutto è proibito ..." Il tuo punto è ben fatto anche sui demoni locali. Come spesso accade - sono sicuro che sarete d'accordo - il pericolo è spesso "dentro"
Aitch

12
(Bene, se posso presumere un po ', il tuo profilo suggerisce che sei nuovo su serverfault. L'etichetta locale è che quando sei soddisfatto di una risposta, la accetti, facendo clic sul segno di spunta, se la memoria serve; che guida il sistema di reputazione. Naturalmente, se lo sai già, o stai aspettando di vedere se arrivano altre, migliori, risposte, allora è anche molto giusto e corretto, e per favore ignorami. La community lo chiede solo una volta sei pienamente soddisfatto di una risposta alla tua domanda, la accetti.)
MadHatter

+1 @MatHatter - buona descrizione di come i firewall possono fornire sicurezza per impostazione predefinita, piuttosto che scelta.
Coop

È un rischio calcolato. Almeno su OpenBSD, abilitando pf si aggiungono 35K righe di codice nel kernel, che possono avere dei bug. D'altra parte, un rifiuto predefinito - e un firewall di registrazione adeguato - è il più grande IDS che il denaro possa comprare. Smetti di provare a usare Snort per cercare cose cattive: ogni volta che una delle tue macchine fa qualcosa che non hai specificamente permesso, dovresti ricevere una notifica.
Alex Holst,

14

Principio del minimo privilegio. Un firewall ti aiuta ad arrivarci. Principio della difesa in profondità. Un firewall ti aiuta anche ad arrivarci. Qualsiasi configurazione ben progettata si basa esplicitamente su questi due in un modo o nell'altro.

Un'altra cosa è che i tuoi server saranno molto probabilmente hardware di base o hardware specifico per la gestione di software server in esecuzione su un sistema operativo server standard (Unix, NT, Linux). Cioè, non hanno hardware specializzato per gestire e filtrare il traffico in entrata in modo efficiente. Vuoi che il tuo server gestisca ogni singolo possibile multicast, pacchetto ICMP o scansione delle porte che si fa strada?

Molto probabilmente quello che vuoi è che i tuoi server gestiscano fisicamente le richieste solo ad alcune porte (80, 443, la tua porta ssl, la tua tipica porta 1521 oracle, la tua porta rsync, ecc.) Sì, ovviamente hai impostato firewall software sul tuo server per ascoltare solo quelle porte. Ma le tue schede di rete continueranno a sostenere il traffico indesiderato (sia esso maligno o normale nella tua organizzazione). Se le tue schede di interfaccia di rete vengono martellate, lo sono anche i percorsi di rete che attraversano i tuoi server (e possibilmente tra i tuoi server e i client interni e le connessioni a altri server e servizi interni.)

Non solo le schede di rete vengono martellate, ma verrà attivato anche il firewall del software in quanto deve ispezionare ogni singolo pacchetto o datagramma che ottiene.

I firewall d'altra parte, specialmente quelli ai bordi delle sottoreti (o che separano le tue sottoreti dal mondo esterno) tendono ad essere hardware specializzato appositamente creato per gestire quel tipo di volume.

È possibile circondare N numero di server con M numero di firewall (con N >> M). E si imposta l'hardware del firewall in modo che esegua il dump di tutto ciò che non è diretto verso porte specifiche. Scansioni delle porte, ICMP e altre schifezze sono esauriti. Quindi ottimizzare il firewall del software nei server in base alla loro funzione specifica.

Ora hai appena ridotto (ma non eliminato) la probabilità di un blackout totale, riducendolo a un partizionamento della rete o al peggioramento parziale nel peggiore dei casi. E così, hai aumentato la capacità dei tuoi sistemi di sopravvivere a un attacco o una configurazione errata.

Non avere un firewall perché i tuoi server ne hanno uno è come sentirsi al sicuro quando si allaccia la cintura di sicurezza mentre si guida a 120 miglia all'ora con visibilità zero a causa della nebbia. Non funziona così.


4

Ci sono molti attacchi a cui potresti essere vittima se non hai un firewall che fa qualche tipo di ispezione a livello di pacchetto:

Esempio è il pacchetto dell'albero di Natale

http://en.wikipedia.org/wiki/Christmas_tree_packet

Gli attacchi DDOS potrebbero essere eseguiti contro il tuo sistema, un firewall (forse esterno, prima che uno qualsiasi dei tuoi server) fermerebbe / rallenterebbe / uccidesse il traffico prima che paralizzasse i tuoi server.

Solo perché non hai dati finanziari o personali sui server non significa che non ti "farai del male". Sono sicuro che paghi per larghezza di banda o utilizzo della CPU o hai una tariffa misurata. Immagina nel corso di una notte (mentre dormi) qualcuno corre su il tuo contatore (l'ho visto accadere con i fornitori di Switch VOIP, colpiti nella notte per MILIONI DI MINUTI di traffico, per i quali devono pagare il conto).

Quindi sii intelligente, usa la protezione se è lì, NON SEI PERFETTO, e nemmeno il software. È sicuro solo fino a quando non viene trovato l'exploit successivo. ;)


2

Se è possibile applicare un principio del privilegio minimo senza utilizzare un firewall, probabilmente non è necessario. Dal mio punto di vista, la costruzione di un sistema sicuro senza l'uso di un firewall richiede uno sforzo maggiore e sono abbastanza pigro. Perché dovrei preoccuparmi di limitare le connessioni TCP usando altri strumenti e probabilmente molti file di configurazione quando posso separare i privilegi a livello di trasporto usando una singola configurazione.


1
Un buon punto sulla configurazione singola, meno spazio per l'errore. Sono d'accordo con l'essere pigro, ove possibile! cfengine elimina un po 'di questa complessità per me mitigando in parte il problema di molti file di configurazione .... ma ... è buono solo come le regole scritte naturalmente. Quindi lasci la maggior parte dei file di configurazione su "default" (o quasi) come barriera secondaria e hai il firewall come (almeno in un senso di livello) la preoccupazione principale.
Arriva l'

2
Ho prima votato per PoLP, poi ho votato per pigrizia. I firewall non sono strumenti per consentire ai loro proprietari di essere sciatti. Dovresti preoccuparti di rafforzare la tua superficie di attacco perché se l'attaccante passa attraverso il firewall (dopotutto devi avere qualcosa di aperto), può semplicemente disattivare iptables. Applica la tua pigrizia dove appartiene: rendi il sistema il più privo di slop possibile, quindi non devi ripararlo a lungo.
Marcin

@Marcin Intendo che se qualcuno vuole proteggere un sistema senza un firewall, dovrà prima creare un modello di minaccia completo. I firewall implicano una sorta di modello di minaccia noto e ben descritto, quindi non devo costruirlo da zero per ogni host. Naturalmente, se parliamo di una sicurezza di livello militare, non c'è scelta, dovrebbe essere costruito un modello formale di minaccia.
Alex

1

Un firewall può anche intercettare i pacchetti indesiderati dal raggiungere i tuoi server. Invece di gestirli a livello di singolo server, puoi gestirli con il firewall. È possibile mantenere tutte queste attività di configurazione sul singolo firewall anziché su più server.

Ad esempio, se un utente malintenzionato ha acquisito il controllo di un IP esterno e sta delugando i server con pacchetti indesiderati e si desidera mitigare gli effetti che ha sui server ... è possibile configurare ciascuno dei server interessati per eliminare i pacchetti dannosi o semplicemente apporta le modifiche al tuo firewall e tutti i tuoi server sono protetti. Avere il firewall ha ridotto i tempi di reazione.


Inoltre, in questo modo si configura comunque un firewall - capita solo di trovarsi su ciascun server.
mfinni,

1

Tu o qualcun altro potresti commettere un errore sulla configurazione del tuo server un giorno, un firewall ti dà quindi una seconda possibilità di impedire a qualcuno di entrare. Non siamo perfetti, facciamo errori e quindi un po 'di assicurazione "non necessaria" può essere utile .

(Cerca di non eseguire il firewall sullo stesso sistema operativo dei tuoi server, altrimenti un singolo bug nel sistema operativo .... Considero tutte le versioni di Unix come lo stesso sistema operativo, poiché hanno così tanto in comune)


Eccellente, mescolare piattaforme (sistema operativo e hardware) è la chiave.
Zio olandese,

1

I firewall sono protetti nella manipolazione del traffico. Lo fanno in fretta e hanno risorse. E non sprecate risorse del server per filtrare il traffico (disco io / proc time / etc). Dovresti configurare un po 'di sicurezza nell'ambiente server ma tutte le ispezioni del traffico e la scansione antivirus e così via dovrebbero fare server specializzati.


-2

Sarei preoccupato che se mai vieni violato e non hai un firewall in atto. Gli hacker potrebbero aprire altre porte sui tuoi server. Inoltre, se un consulente viene coinvolto per eseguire alcune operazioni di pulizia e controllo, la prima cosa che diranno è: "COSA?!?! Non hai un firewall!" Quindi potresti essere bruciato.


-1 Risposta un po 'sensazionalista + in realtà non costruttiva.
Coop

2
Se il server è compromesso, un firewall non sarà necessariamente d'aiuto quando il bozo che si è rotto lo disabilita semplicemente! * dichiarazione di non responsabilità, la domanda menzionava l'utilizzo di iptables, non di un firewall hardware separato.
Bryan,
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.