Controllo accessi a linux. Scopriamo chi.
Il nostro computer è in sicurezza?
Bisogna controllare gli accessi a linux, sempre! Esistono dei controlli che devono essere fatti periodicamente. Alcuni anche tutti i giorni. Questi piccoli controlli, semplici e di immediato riscontro, possono metterci al sicuro da bruttissime sorprese. Il nostro computer o server potrebbe essere divenuto uno zombie e far parte di una botnet. Qualcuno potrebbe aver scoperto le password ed utilizzare il nostro account e macchina per usi non proprio legali. Spendere 20 minuti al giorno, per effettuare controlli, non deve essere visto come tempo perso , ma tempo necessario a salvaguardare noi e il nostre periferiche (singolo pc o server che sia).
Vi propongo una serie di comandi semplici da utilizzare che con i loro risultati possono darci un quadro generale di cosa stia avvenendo sulla nostra macchina.
Il comando w.
Il comando w su molti sistemi operativi simili a Unix fornisce un breve riepilogo di ogni utente connesso a un computer. Ci mostra cosa sta facendo ogni utente e quale carico impone al computer stesso.
Questo comando mostra le informazioni sugli utenti attualmente presenti sulla macchina e sui loro processi. L’intestazione mostra, in questo ordine, l’ora corrente, la durata del funzionamento del sistema, il numero di utenti attualmente connessi e le medie di carico del sistema per gli ultimi 1, 5 e 15 minuti. Per ogni utente vengono visualizzate le seguenti voci: nome di login, il nome tty, l’host remoto, l’ora di login, il tempo di inattività, JCPU, PCPU, e la riga di comando del loro processo corrente. Il tempo JCPU è il tempo utilizzato da tutti i processi collegati alla tty. Non include i lavori in background “storici”, ma include i lavori in background attualmente in esecuzione. Il tempo PCPU è il tempo utilizzato dal processo corrente, chiamato nel campo ” what”.
Il comando history – controllo accesso linux .
Il comando history viene utilizzato per visualizzare i comandi precedentemente eseguiti. Bash e Korn supportano questa caratteristica in cui ogni comando eseguito è trattato come evento ed è associato ad un numero di evento mediante il quale possono essere richiamati e modificati se necessario. Questi comandi sono salvati in un file di cronologia. Nella shell Bash il comando di history mostra l’intera lista del comando.
con questo comando possiamo vedere lista completa degli ultimi comandi impartiti. Se vedete qualcosa di strano o se history non vi riproduce output o output limitato as un periodo di tempo molto stretto, allertatevi!
Il comando netstat.
Iniziamo con un netstat nudo e crudo
e’ un po dura da leggere è in questo momento non è quello che cerchiamo. Però a netstat possono essere aggiunti dei parametri come :
a: mostra tutti i socket
t: mostra le connessioni TCP
u: mostra le connessioni UDP
p: per visualizzare il PID correlato del processo o del nome del programma
quindi proviamo con
netstat -atup (potete utilizzare anche solo i singoli parametri)
Il comando lsof
Non tentate (fatelo) di lanciare lsof senza parametri , vi uscirà una lunga lista …. molto lunga.
Proviamo invece a lanciarlo con
-i
e poi con
-n -P | grep LISTEN
sono i parametri che uso più di frequente
Ricordo sempre un bel man lsof
lsof -i
lsof -n -P | grep LISTEN
vediamo anche i socket aperti…..
Il comando sockstat.
Sockstat è uno strumento che permette di visualizzare informazioni sulle connessioni aperte. È simile allo strumento omonimo incluso in FreeBSD, e cerca di riprodurne fedelmente il maggior numero possibile di funzionalità.
Questa versione di sockstat contiene svariate funzionalità aggiuntive come la capacità di cercare socket in uso in base a GID, UID e nome di processo oltre agli altri criteri gestiti da sockstat di FreeBSD.
Sockstat è una utility molto versatile a riga di comando utilizzata per visualizzare le connessioni di rete e di sistema aperte.
Se non fosse installata basta un canonico
sudo apt install sockstat
Tuttavia, sockstat può anche elencare i socket aperti in base alla versione del protocollo (TCP UDP), allo stato della connessione e a quali porte un demone o un programma si lega e rimane in ascolto.
Può anche visualizzare le porte di comunicazione inter-process, tipicamente note come Unix domain socket o IPC. Il comando sockstat combinato con il filtro grep o con l’utility awk si rivela un potente strumento per lo stack di rete locale.
## Show listening sockets ##
sockstat -l
## Show listening sockets for IPv4 only ##
sockstat -4 -l
## Show listening sockets for IPv6 only ##
sockstat -6 -l
Possiamo utilizzare anche il comando grep per selezionare una determinata porta.
sockstat -4 -l | grep :23
sockstat -4 -l | grep :8080
Il comando iftop.
Installazione su Debian / Ubuntu
E’ disponibile neu repository predefiniti di Debian / Ubuntu e può essere installato usando il comando seguente
sudo apt-get install iftop
Installatione su RHEL/Centos usando yum
Per installarlo su CentOS o RHEL, dobbiamo abilitare il repository EPEL. Per abilitare il repository, eseguire
Con RHEL/CentOS 7
rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-10.noarch.rpm
Per RHEL/CentOS 6 (32 Bit)
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
avendo abilitato il repository epel lo possiamo installare con il seguente comando
yum install iftop
Lanciamo “iftop”
sudo iftop
Ci verrà presentata l’attività di rete che si sta verificando sul nostro computer.
possiamo anche usare
sudo iftop -n
Che presenterà le informazioni di rete sul tuo schermo ma con ‘-n’, non ti verranno presentati i nomi relativi agli indirizzi IP ma solo gli indirizzi IP. Questa opzione consente di salvare una certa larghezza di banda, che va a risolvere gli indirizzi IP ai nomi.
Ora possiamo anche vedere tutti i comandi che possono essere usati con “iftop”. Una volta eseguito iftop, premi il tasto ‘h’ sulla tastiera per vedere tutti i comandi che possono essere usati .
e per monitorare solo una determinata interfaccia
sudo iftop –I nomeinterfaccia
Riassuntino
Bisogna controllare il flusso di rete, gli utenti , i servizi , le connessioni aperte abbastanza spesso e controllare gli ip che hanno una certa cadenza e numero di pacchetti. Si devono fare questi controlli per evitare sorprese molto amare. Ricordiamoci di effettuare il controllo degli accessi a linux.