Suggerimenti per la sicurezza sui sistemi GNU / Linux

Bene, stavo preparando questo post per il mio blog per qualche tempo me l'hanno suggerito DesdeLinuxe, per mancanza di tempo, non era stato in grado o disposto. Se sono un po 'pigro 😀. Ma ora sono in sciopero, come si dice a Cuba ...

Questa è una raccolta di regole di sicurezza di base per gli amministratori di sistema, in questo caso, per chi come me gestisce reti / sistemi basati su GNU / Linux ... Potrebbero essercene di più e in effetti ce ne sono di più, questo è solo un esempio di il mio girovagare per il mondo Linux ...

0- Mantieni i nostri sistemi aggiornati con gli ultimi aggiornamenti di sicurezza.

0.1- Mailing list degli aggiornamenti critici [Consulente per la sicurezza di Slackware, Consulente per la sicurezza Debian, nel mio caso]

1- Zero accesso fisico ai server da parte di personale non autorizzato.

1.1- Applica password a BIOS dei nostri server

1.2- Nessun avvio da CD / DVD

1.3- Password in GRUB / Lilo

2- Buona politica delle password, caratteri alfanumerici e altri.

2.1- Invecchiamento delle password [Password Aging] con il comando "chage", nonché il numero di giorni tra la modifica della password e la data dell'ultima modifica.

2.2- Evita di utilizzare password precedenti:

in /etc/pam.d/common-password

password sufficient pam_unix.so use_auth ok md5 shadow remember 10

Quindi cambi la password e ti ricorda le ultime 10 password che l'utente aveva.

3- Buona politica di gestione / segmentazione della nostra rete [router, switch, vlan] e firewall, nonché regole di filtro INPUT, OUTPUT, FORWARD [NAT, SNAT, DNAT]

4- Abilita l'uso delle shell [/ etc / shells]. Gli utenti che non devono accedere al sistema ottengono / bin / false o / bin / nologin.

5- Blocca gli utenti quando l'accesso non riesce [faillog], nonché controlla l'account utente del sistema.

passwd -l pepe -> blocca l'utente pepe passwd -v pepe -> sblocca l'utente pepe

6- Abilita l'uso di "sudo", non accedere MAI come root da ssh, "MAI". Infatti è necessario modificare la configurazione di ssh per raggiungere questo scopo. Usa chiavi pubbliche / private sui tuoi server con sudo.

7- Applicare nei nostri sistemi il "Principio di privilegio minimo".

8- Controlla i nostri servizi di volta in volta [netstat -lptun], per ciascuno dei nostri server. Aggiungi strumenti di monitoraggio che possono aiutarci in questo compito [Nagios, Cacti, Munin, Monit, Ntop, Zabbix].

9- Installa IDS, Snort / AcidBase, Snotby, Barnyard, OSSEC.

10- Nmap è tuo amico, usalo per controllare la tua subnet / subnet.

11- Buone pratiche di sicurezza in OpenSSH, Apache2, Nginx, MySQL, PostgreSQL, Postfix, Squid, Samba, LDAP [quelli più utilizzati] e alcuni altri servizi di cui hai bisogno nella tua rete.

12- Crittografa tutte le comunicazioni, se possibile, nei nostri sistemi, SSL, gnuTLS, StarTTLS, digest, ecc ... E se gestisci informazioni sensibili, crittografa il tuo disco rigido !!!

13- Aggiorna i nostri server di posta con le ultime regole di sicurezza, blacklist e antispam.

14- Registrazione delle attività nei nostri sistemi con logwatch e logcheck.

15- Conoscenza e utilizzo di strumenti come top, sar, vmstat, free, tra gli altri.

sar -> report attività di sistema vmstat -> processi, memoria, sistema, i / o, attività cpu, ecc iostat -> stato i / o cpu mpstat -> stato e utilizzo multiprocessore pmap -> utilizzo della memoria da processi liberi -> memoria iptraf -> traffico in tempo reale del nostro stato ethernet di rete -> statistiche ethernet basate su console monitor etherape -> monitor grafico di rete ss -> stato socket [informazioni socket tcp, udp, prese raw, prese DCCP] tcpdump -> Analisi dettagliata del traffico vnstat -> monitoraggio del traffico di rete delle interfacce selezionate mtr -> strumento di diagnostica e analisi del sovraccarico nelle reti ethtool -> statistiche sulle schede di rete

Per ora è tutto. So che ci sono mille e uno in più suggerimenti di sicurezza in questo tipo di ambiente, ma questi sono quelli che mi hanno colpito di più o che ad un certo punto ho dovuto applicare / esercitare in un ambiente che ho amministrato .

Un abbraccio e spero che ti serva 😀


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   koratsuki suddetto

    Vi invito nei commenti a parlarci di alcune altre regole che sono state implementate oltre a quelle già citate, per aumentare la conoscenza dei nostri lettori 😀

    1.    yukiteru suddetto

      Ebbene aggiungerei:

      1.- Applica le regole sysctl per evitare dmesg, / proc, SysRQ access, assegna PID1 al core, abilita le protezioni per i collegamenti simbolici hard e soft, le protezioni per gli stack TCP / IP sia per IPv4 che per IPv6, attiva il VDSO completo per i puntatori di randomizzazione massimi e allocazioni dello spazio di memoria e migliorare la resistenza contro gli overflow del buffer.

      2.- Creare firewall di tipo SPI (Stateful Package Inspect) per impedire che connessioni non create o precedentemente autorizzate abbiano accesso al sistema.

      3.- Se non si dispone di servizi che garantiscono connessioni con privilegi elevati da una postazione remota, è sufficiente revocare l'accesso ad essi utilizzando access.conf o, in caso contrario, abilitare l'accesso solo a un utente o gruppo specifico.

      4.- Utilizzare limiti rigidi per impedire che l'accesso a determinati gruppi o utenti destabilizzi il sistema. Molto utile negli ambienti in cui è sempre attivo un vero multiutente.

      5.- TCPWrappers è tuo amico, se sei su un sistema con supporto per esso, utilizzarlo non sarebbe dannoso, quindi puoi negare l'accesso da qualsiasi host a meno che non sia precedentemente configurato nel sistema.

      6.- Creare chiavi SSH RSA di almeno 2048 bit o meglio di 4096 bit con chiavi alfanumeriche di oltre 16 caratteri.

      7.- Quanto sei scrivibile? Controllare i permessi di lettura-scrittura delle tue directory non è affatto male ed è il modo migliore per evitare accessi non autorizzati in ambienti multiutente, senza contare che rende più difficile per determinati accessi non autorizzati accedere alle informazioni che fai non voglio che lo vedano, nessun altro.

      8.- Montare qualsiasi partizione esterna che non lo meriti, con le opzioni noexec, nosuid, nodev.

      9.- Utilizzare strumenti come rkhunter e chkrootkit per verificare periodicamente che nel sistema non siano installati rootkit o malware. Una misura prudente se sei uno di quelli che installano cose da repository non sicuri, da PPA o semplicemente compilano codice dal vivo da siti non affidabili.

      1.    koratsuki suddetto

        Uhmmm, delizioso ... Bel commento, aggiungi ragazzi ... 😀

    2.    William Moreno-Reyes suddetto

      Applicare un controllo di accesso obbligatorio con SElinux?

  2.   Armando F suddetto

    articolo molto buono

    1.    koratsuki suddetto

      Grazie amico 😀

  3.   joaco suddetto

    Ciao e se sono un utente normale, dovrei usare su o sudo?
    Uso su perché non mi piace sudo, perché chiunque abbia la mia password utente può cambiare quello che vuole sul sistema, invece con su no.

    1.    koratsuki suddetto

      Sul tuo PC non si preoccupa di usare su, puoi usarlo senza problemi, sui server, è vivamente consigliato disabilitare l'uso di su e usare sudo, molti dicono che è dovuto al fatto di controllare chi ha eseguito cosa command e sudo fa quel compito ... io in particolare, sul mio pc uso il suo, proprio come te ...

      1.    joaco suddetto

        Certo, non so davvero come funziona sui server. Tuttavia, mi sembra che sudo avesse il vantaggio di poter dare privilegi all'utente di un altro computer, se non sbaglio.

    2.    Andrea suddetto

      Articolo interessante, crittografo alcuni file con gnu-gpg, così come quello del privilegio minimo, nel caso si voglia eseguire, ad esempio, un binario di origine sconosciuta perso negli immensi mari di informazioni sul disco, come faccio a rimuoverlo accesso a determinate funzioni?

      1.    koratsuki suddetto

        Questa parte la devo a te, anche se penso che dovresti eseguire solo come sudo / root, programmi affidabili, cioè provengono dal tuo repository ...

      2.    yukiteru suddetto

        Ricordo di aver letto che c'è un modo per abilitare le funzionalità di root in alcuni manuali su GNU / Linux e UNIX, se lo trovo lo metto 😀

      3.    clown suddetto

        e le gabbie chown per eseguire binari sconosciuti?

    3.    yukiteru suddetto

      Usare sudo in ogni momento è molto meglio.

    4.    vivace suddetto

      Oppure puoi usare sudo, ma limitando il tempo in cui la password viene ricordata.

  4.   Kevin Rodríguez suddetto

    Strumenti simili che uso per monitorare il pc, "iotop" come sostituto di "iostat", "htop" eccellente "task manager", monitoraggio della larghezza di banda "iftop".

  5.   monitorinux suddetto

    molti penseranno che sia esagerato, ma ho già visto attacchi per includere un server in una botnet.

    https://twitter.com/monitolinux/status/594235592260636672/photo/1

    ps: mendicanti cinesi e i loro tentativi di hackerare il mio server.

  6.   clown suddetto

    qualcosa che è anche conveniente è usare gabbie chown per i servizi, quindi se per qualche motivo vengono attaccati non comprometterebbero il sistema.

  7.   diavolo suddetto

    L'utilizzo del comando ps è eccellente anche per il monitoraggio e potrebbe far parte delle azioni per verificare la presenza di falle di sicurezza. l'esecuzione di ps -ef elenca tutti i processi, è simile a top ma mostra alcune differenze. l'installazione di iptraf è un altro strumento che potrebbe funzionare.

  8.   Claudio J. Concepcion Certezza suddetto

    Buon contributo.

    Aggiungerei: SELinux o Apparmor, a seconda della distro, sempre abilitati.

    Dalla mia esperienza mi sono reso conto che è una cattiva pratica disabilitare quei componenti. Lo facciamo quasi sempre quando installiamo o configuriamo un servizio, con la scusa che funziona senza problemi, quando in realtà quello che dovremmo fare è imparare a gestirli per consentire quel servizio.

    Saluti.

  9.   GnuLinux ?? suddetto

    1.Come crittografare l'intero file system? ne vale la pena??
    2. Deve essere decrittografato ogni volta che il sistema verrà aggiornato?
    3. Crittografare l'intero file system della macchina equivale a crittografare qualsiasi altro file?

    1.    yukiteru suddetto

      Come fai a sapere di cosa stai parlando?

  10.   NauTilu S suddetto

    Inoltre, puoi mettere in gabbia programmi e persino più utenti. Anche se fare questo è più lavoro, ma se è successo qualcosa e avevi una copia precedente di quella cartella, è solo colpire e cantare.

  11.   Toño suddetto

    La migliore e più conveniente politica di sicurezza è quella di non essere paranoici.
    Provalo, è infallibile.

  12.   angelbeniti suddetto

    Sto usando CSF ​​e quando sblocco un client che ha smarrito la sua password in alcuni accessi, ritarda il processo ma lo fa. È normale?

    Sto cercando il comando per sbloccare da ssh ... qualsiasi suggerimento