GNU/Linux >> Linux Esercitazione >  >> Linux

Bilanciare la sicurezza di Linux con l'usabilità

Internet è pieno di persone che vogliono distruggere le tue cose. Alcuni di loro sono solo curiosi, altri cercano un brivido, altri stanno cercando di rubare i tuoi dati e alcuni vogliono solo vedere le cose bruciare. Qualunque sia il motivo, è tuo compito di amministratore di sistema tenere questi aggressori fuori dai tuoi server. Se stai utilizzando un sistema Linux, questo articolo fa per te. Analizzeremo alcuni dei motivi per cui è necessario rafforzare i sistemi e altre considerazioni di alto livello.

I sistemi operativi sono un equilibrio

Costruire un sistema operativo è un equilibrio difficile e una distribuzione Linux non è diversa. È necessario considerare le funzionalità pronte all'uso che la maggior parte delle persone vorrà e l'accessibilità per un'ampia gamma di competenze degli amministratori. Se rendi la tua distribuzione molto sicura, ma un amministratore di sistema principiante non riesce a capire come lavorarci... beh, troveranno una distribuzione più semplice su cui imparare e ora hai perso quell'amministratore per un'altra distribuzione . Quindi non sorprende che, subito dopo il tempo di installazione, la maggior parte delle distribuzioni Linux abbia bisogno di un po' di modifiche per bloccarle. Questo è migliorato nel corso degli anni, poiché gli stessi installatori sono diventati più facili da usare e più ricchi di funzionalità. Puoi creare un sistema piuttosto personalizzato direttamente dal programma di installazione della GUI. Un sistema Red Hat Enterprise Linux (RHEL) di base, ad esempio, se hai scelto il set di pacchetti di base, è in realtà piuttosto leggero su servizi e pacchetti non necessari.

C'è stato un tempo in cui non era vero. Riesci a immaginare le password sottoposte a hash, ma disponibili in /etc/password per essere lette da qualsiasi utente? O tutta la gestione del sistema viene eseguita su Telnet? SSH non era nemmeno attivo, per impostazione predefinita. Firewall basato su host? Completamente facoltativo. Quindi, 20 anni fa, bloccare un sistema Linux appena installato significava una lunga lista di attività. Fortunatamente, man mano che l'informatica è maturata, anche l'installazione predefinita di quasi tutti i sistemi operativi.

Che cos'è il "hardening" del sistema

Rafforzare un sistema è l'atto di rendere il sistema più sicuro, un obiettivo più difficile per i malintenzionati. Immagina di avere una staccionata bianca che protegge la tua casa. Probabilmente è sufficiente mantenere oneste le persone oneste:vedono la recinzione e il bel chiavistello del tuo cancello e decidono di rispettare il fatto che ovviamente non vuoi persone nel tuo giardino. Ti senti al sicuro sapendo che nessuno entrerà nel tuo giardino e calpesterà i tuoi fiori perché le persone rispettano quel confine della tua proprietà. Tutto ciò che serve, però, è un bambino a cui non importa nulla di tutto questo per tagliare il tuo giardino perché non possono essere disturbati ad andare in giro. La tua staccionata bianca e il fragile chiavistello non sono niente da aprire e correre attraverso.

Indurire sarebbe come aggiornare la staccionata bianca a una rete metallica alta sei piedi e aggiungere un chiavistello con un lucchetto. Qualcuno abbastanza determinato potrebbe ancora scavalcare la recinzione, ma quel ragazzo che stava tagliando il tuo giardino probabilmente non si preoccuperà più, perché è un po' troppo lavoro.

Vedi, la sicurezza informatica non riguarda l'essere completamente infrangibile, a meno che tu non sia Oracle; si tratta di essere abbastanza sicuri da rendere difficile l'irruzione, mentre sono ancora abbastanza aperti da consentire al tuo sistema di fare effettivamente ciò per cui è progettato. Un server Web così bloccato da non poter eseguire un sito Web su di esso non è un ottimo server Web, come una recinzione a catena senza cancello.

Suggerimenti per la tempra

Di seguito non c'è una procedura dettagliata, ma piuttosto alcuni punti generali da considerare mentre lavori per rafforzare il tuo sistema.

Abbandona la GUI

Stai utilizzando una workstation? O un server? I server non hanno bisogno di GUI. È solo un'altra cosa che consuma spazio e CPU. Quando installo un sistema, lo installo con l'ingombro minimo consentito dal programma di installazione. Ciò significa nessuna GUI. Semplicemente non ne hai bisogno. Ci sono alcune applicazioni che necessitano di un ambiente X per essere installate e gestite (il che è semplicemente sciocco nell'era di oggi, ma succede). Se non ne stai eseguendo uno, tuttavia, non preoccuparti di installare una GUI o di preoccuparti di nessuno dei loro requisiti.

Servizi non necessari

A seconda della tua distribuzione, potresti avere alcuni servizi installati come parte della base che semplicemente non sono necessari, come in quei giorni Telnet a cui ho fatto riferimento in precedenza:quando le distribuzioni stavano ancora passando da Telnet a SSH per la gestione, avresti entrambi abilitati da un'installazione di base. Devi scegliere quale vuoi mantenere, quindi probabilmente vorrai disabilitare Telnet o almeno disattivarlo. Oggi, questi servizi potrebbero essere qualcosa di più simile al servizio di stampa CUPS o forse al Mail Transfer Agent (MTA) del sistema. Potrebbero essere configurati immediatamente per ascoltare le connessioni in entrata. Anche se probabilmente hai bisogno di un MTA, non ne hai bisogno per accettare connessioni esterne. Su un sistema sistema, puoi elencare tutti i servizi attivi abbastanza facilmente. Puoi anche rivedere l'output di netstatss per vedere quali servizi stanno ascoltando le connessioni. Se non sai cos'è un servizio, ora è un ottimo momento per leggere un po'.

Accesso utente

A meno che tu non stia eseguendo un server shell, a cui le persone hanno effettivamente bisogno di accedere, probabilmente vorrai pensare a chi dare un account shell sui tuoi sistemi. Questa non è necessariamente una pratica indurente quanto una buona amministrazione. Più account ci sono, maggiore è l'impronta degli account che possono essere compromessi. È anche un'ottima idea prestare molta attenzione a come distribuisci sudo privilegi. Nessuno dovrebbe mai avere la password di root, a parte forse il team di amministrazione dei sistemi (e anche loro non dovrebbero usarla a meno che non sia assolutamente necessario). Il sudo c'è per una ragione; usalo.

Firewall basati su host

Ne ho parlato un bel po' nella mia serie sulla difesa in modo approfondito. Il firewall basato su host è l'ultima linea di difesa della rete; usalo. Di default, la tua distribuzione potrebbe avere un firewall completamente aperto, o forse ha alcune porte predefinite aperte. Come vengono terminate le regole del firewall? Si tratta di un sistema aperto o chiuso predefinito? Non ho mai visto una ragione, a parte forse la risoluzione dei problemi, per avere un firewall aperto predefinito. Tuttavia, ho potuto vedere come un'installazione di base potrebbe avere il firewall configurato in questo modo, quindi è bene sapere o scoprire. Tutte le astute regole del firewall nel mondo non servono a niente se il tuo firewall si apre per impostazione predefinita. Il software dovrebbe essere aperto; i firewall dovrebbero essere chiusi.

Protocolli protetti

C'è stato un tempo in cui hai crittografato solo il traffico che aveva una ragionevole possibilità di scambiare dati privati, come le password. Questo perché la crittografia aveva un costo. Sgranocchiare i numeri è ciò in cui i computer sono bravi, ma crittografare ogni bit di comunicazione ha aggiunto latenza. Non molto, ma si somma. Beh, non è proprio questo il problema di una volta. Siamo a un punto in cui non c'è davvero alcun motivo per non crittografare il traffico in entrata e in uscita dal tuo sistema. Puoi crittografare TLS con LetsEncrypt gratuitamente e la gestione su SSH non è più nemmeno una domanda. Sono sicuro che ci sono casi limite qui, ma scommetto che, la maggior parte delle volte, la risposta a "Dovrebbe essere crittografato?" è probabile che sia "sì".

Ricorda il saldo

Ricorda che la sicurezza è un equilibrio tra accessibilità, usabilità e restrizione. Troppo lontano in una di queste direzioni e sei nei guai.

[ Download gratuito:cheat sheet dei comandi avanzati di Linux. ]


Linux
  1. Monitora il tuo sistema Linux nel tuo terminale con procps-ng

  2. Scansiona la tua sicurezza Linux con Lynis

  3. Comprensione delle chiamate di sistema su Linux con strace

  4. Pianificazione delle attività di sistema con Cron su Linux

  5. Monitoraggio della sicurezza in Linux con Tripwire

Controllo della sicurezza di Linux con Lynis

Comando Linux Uptime con esempi

Introduzione al sistema operativo Linux

Trova le informazioni sull'hardware del sistema Linux con Hwinfo

Come visualizzare le statistiche del sistema Linux con Saidar

Audit di sicurezza con Lynis