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 ...
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 😀
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 😀
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.
Uhmmm, delizioso ... Bel commento, aggiungi ragazzi ... 😀
Applicare un controllo di accesso obbligatorio con SElinux?
articolo molto buono
Grazie amico 😀
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.
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 ...
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.
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?
Questa parte la devo a te, anche se penso che dovresti eseguire solo come sudo / root, programmi affidabili, cioè provengono dal tuo repository ...
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 😀
@andrew ecco l'articolo che ho citato e qualche ulteriore aiuto
http://www.cis.syr.edu/~wedu/seed/Labs/Capability_Exploration/Capability_Exploration.pdf
http://linux.die.net/man/7/capabilities
https://wiki.archlinux.org/index.php/Capabilities
e le gabbie chown per eseguire binari sconosciuti?
Usare sudo in ogni momento è molto meglio.
Oppure puoi usare sudo, ma limitando il tempo in cui la password viene ricordata.
Strumenti simili che uso per monitorare il pc, "iotop" come sostituto di "iostat", "htop" eccellente "task manager", monitoraggio della larghezza di banda "iftop".
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.
qualcosa che è anche conveniente è usare gabbie chown per i servizi, quindi se per qualche motivo vengono attaccati non comprometterebbero il sistema.
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.
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.
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?
Come fai a sapere di cosa stai parlando?
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.
La migliore e più conveniente politica di sicurezza è quella di non essere paranoici.
Provalo, è infallibile.
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