Controlliamo gli accessi a linux. Qualcuno ha accesso al nostro computer ?

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.

controllo accesso linux - il comando history
il comando history in linux –

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

linux netstat
comando netstat linux –

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)

 linux netstat -autp
comando linux netstat -autp – controllo accesso linux

 



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

comando linux isof -i
comando linux isof -i – Controlliamo gli accessi a linux.

lsof -n -P | grep LISTEN

vediamo anche i socket aperti…..

comando linux isof -n -p
comando linux isof -n -p – controllo accesso linux



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.

 

sockstat
sockstat  –  Controlliamo gli accessi a linux.

## 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

comando iftop linux
comando iftop linux

Lanciamo “iftop”

sudo iftop

Ci verrà presentata l’attività di rete che si sta verificando sul nostro computer.

sudo iftop
sudo iftop

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.