Loading...

Sicurezza Linux – Consigli Utili

Utilizzare sempre un gestore di pacchetti (come apt-get su Debian), per scaricare ed installare i pacchetti di aggiornamento sul sistema. Prestare molta attenzione durante l’aggiornamento automatico sui server di produzione.

Installare nmap per determinare i canali di comunicazione possibili. Inizia con qualcosa di semplice come:

# nmap 192.168.1.1

L’utilizzo di una password adeguata e’ il primo passo per garantire la protezione dei vostri server. Scegliere accuratamente una password per tutti gli utenti registrati sul vostro server e’ necessario al fine di evitare accessi non autorizzati. Se un utente malintenzionato dovesse impossessarsi della vostra password potrebbe facilmente accedere al vostro server. Per migliorare il livello di sicurezza dei vostri server vi consigliamo di disabilitare eventuali account non utilizzati utilizzando il comando : /usr/bin/passwd -l.

Vi consigliamo inoltre di disabilitare programmi e servizi non utilizzati che potrebbero rappresentare una possibile porta d’accesso al vostro server.

La sicurezza del Kernel

Esistono diverse possibilita’ di configurazione del Kernel che permettono di aumentare la sicurezza grazie all’utilizzo del psudo-filsystem /proc. Alcuni files contenuti nella directory /proc/sys sono direttamente legati alla sicurezza. Queste sono alcune delle opzioni disponibili in /proc/sys/net/ipv4:

icmp_echo_ignore_all: Disabilita tutte le richieste ICMP ECHO. Questo farà in modo che il kernel ignori semplicemente tutti i messaggi di ping (conosciuti anche come messaggi ICMP di tipo 0).
icmp_echo_ignore_broadcasts: Questo disattiva la risposta ai broadcast ICMP, prevenendo gli attacchi Smurf. L’attacco Smurf consiste nell’invio di un messaggio ICMP di tipo 0 (ping) all’indirizzo broadcast di una rete. Di solito l’aggressore utilizza un indirizzo sorgente contraffatto
ip_forward: Assicurarsi che l’IP forwarding sia disattivato. Questa funzione serve solo per un nodo avente più connessioni di rete. Si raccomanda di attivare o disattivare questa flag prima di tutte le altre, in quanto essa attiva/disattiva altre flag.
ip_masq_debug: Enable or disable debugging of IP masquerading.
tcp_syncookies:Protegge da attacchi di tipo SYN.
rp_filter: Attivare il reverse filtering del percorso. Questo aiuta ad essere sicuri che i pacchetti utilizzino indirizzi sorgente regolari, rifiutando automaticamente i pacchetti in arrivo se la voce nella tabella di instradamento che indica il loro indirizzo sorgente non corrisponde all’interfaccia di rete su cui stanno essi arrivando.
secure_redirects: Non accettare pacchetti ICMP rediretti. Le redirezioni ICMP possono essere usate per alterare le tabelle di instradamento, con conseguenze potenzialmente negative.
log_martians: Registra i pacchetti con un indirizzo non valido nel log del kernel.
accept_source_route: Non accettare pacchetti da fonte instradata. Gli aggressori possono usare l’instradamento delle fonti per generare traffico che sembra avere origine all’interno della rete, ma che in realtà viene instradato all’indietro lungo il percorso da cui è venuto, cosicché gli aggressori possono compromettere la rete

Per garantire la sicurezza dei pacchetti di aggiornamenti distribuiti viene utilizzato il comando md5sum. Il comando md5sum permette di calcolare una chiave a 128-bit che dipende direttamente dal contenuto del file a cui e’ applicata e viene utilizzato per confrontare che il valore indicato sia realmente valido o stabilire se il contenuto del file originale e’ stato cambiato. Il comando si utilizza con la seguente sintassi:

# md5sum package-name
La stringa restituita dal comando puo’ essere confrontata con la chiave MD5 pubblicata da chi distribuisce il pacchetto garantendo un buon livello di sicurezza.

I permessi dei files

È importante assicurarsi che i vostri file di sistema non siano aperti da utenti e gruppi che non dovrebbero fare manutenzione di sistema. I file SUID e SGID sono un potenziale rischio, e dovrebbero essere tenuti d’occhio. Visto che questi programmi danno speciali privilegi all’utente che li esegue, è necessario assicurarsi che non vengano istallati programmi insicuri. Un trucco molto diffuso fra i cracker è sfruttare programmi con SUID-root, quindi lasciare un programma SUID a fare da backdoor per entrare la prossima volta, anche se il buco originale viene chiuso. Trovate tutti i programmi SUID/SGID sul vostro sistema, e tenete appunti su cosa sono, così da essere al corrente di qualsiasi cambiamento che potrebbe indicare un eventuale intrusore. Usate questo comando per trovare tutti i programmi con SUID/SGID sul vostro sistema:

root# find / -type f \( -perm -04000 -o -perm -02000 \)

La distribuzione Debian esegue un job ogni sera per determinare quali file con SUID esistano. Quindi li compara con quelli della sera precedente. Potete cercare questo log in /var/log/setuid*. Potete togliere i permessi SUID o SGID da un programma sospetto con chmod, quindi rimetterli se pensate che siano assolutamente necessari. # I file scrivibili da tutti, soprattutto i file di sistema, possono essere un buco nella sicurezza se un cracker accede al vostro sistema e li modifica. Inoltre, le directory scrivibili da tutti sono pericolose: permettono a un cracker di aggiungere o cancellare file come vuole. Per trovare tutti i file di libera scrittura sul vostro sistema, usate il comando:

root# find / -perm -2 ! -type l -ls
e assicuratevi di sapere perché quei file sono scrivibili. Durante l’uso normale alcuni file saranno liberamente scrivibili, inclusi alcuni da /dev, e i link simbolici, da cui il ! -type l che li esclude dal comando find.

Linux e File di Log

Una delle cose che rendono Linux un sistema operativo affidabile e sicuro è che praticamente tutte le operazioni vengono registrate. Queste informazioni sono estremamente importi per poter identificare eventuali problemi. I logs, se usati correttamente, vi forniranno tutte le informazioni di cui avete bisogno.
Il vostro sistema Linux registra le informazioni in diversi files di log. Questi files di log sono generalmente in formato ASCII standard e vengono generalmente registrati nella directory /var/log. Molti files vengono generati dal programma syslogd, mentre altri vengono venerati direttamente dalle applicazioni.
Questa guida spiega come leggere ed utilizzare alcuni di questi log di sistema, come configurare il programma di gestione del logging, syslogd, e come funziona la rotazione automatica dei log.

Log di sistema
I log di sistema si occupano principalmente di tenere sotto controllo il funzionamento di Linux, non necessariamente delle applicazioni installate dagli utenti. Ad esempio vengono monitorati l’accesso al sistema, i daemons di sistema, i messaggi di sistema, etc.

Log di autorizzazione
Il log di autorizzazione tiene traccia del sistema di autenticazione, dei sistemi che si occupano di gestire e richiede agli utenti le password, comne il modulo PAM, il comando sudo, gli accessi da remoto, etc. Il log di autorizzazione viene salvato in /var/log/auth.log.
Per leggere solo le righe dei logs che ci interessano ` possibile utilizzare il programma grep. Per esempio per controllare solo le righe relative ai logins sshd :
grep sshd /var/log/auth.log | less
Daemon Log

Il daemon ` un programma che gira in automatico in background, svolgendo alcune operazioni che garantiscono il corretto funzionamento del sistema. Il log /var/log/daemon.log contiene informazioni relative ai vari servizi che girano in background, come lo Gnome Display Manager, il servizio Bluetooth hcid, o il servizio MySQL mysqld.

Anche in questo caso è possibile utilizzare grep per trovare le informnazioni che ci interessano.

Debug Log
Il debug log viene salvato in /var/log/debug e fornisce informazioni dettagliate sul sistema Linux e sulle applicazioni che hanno impostato un livello di log DEBUG.

Kernel Log
Il kernel log viene salvato in /var/log/kern.log e fornisce informazioni dettagliate provenienti dal kernel Linux. Questi messaggi possono essere utili per controllare problemi relativi ad un kernel nuovo e compilato dall’utente.

Kernel Ring Buffer
Il kernel ring buffer non è un vero e proprio log ma un’area del kernel che può essere utilizzata per visualizzare i messaggi dei avvio del kernel utilizzando l’utility dmesg. Per visualizzare i messaggi utilizzare :
dmesg | less
Ad esempio per cercare i messaggi relativi al sistema Plug & Play :
dmesg | grep pnp | less
In alternativa è possibile cercare le stesse informazioni nel file /var/log/dmesg.

Message Log
Il messages log viene salvato in /var/log/messages e fornisce informazioni provenienti sia dalle applicazioni che dal sistema operativo. Questo log è utile per controllare i messaggi di log generati dalle applicazioni o dal sistema operativo che hanno impostato un livello di log INFO.

System Log
Il system log viene salvato in /var/log/syslog e fornisce la maggior parte delle informazioni provenienti dal sistema operativo. Controllate questo file se non riuscite a trovare le informazioni desiderate in nessun altro log.

Application Log
Alcune applicazioni generano anche dei logs personalizzati in una subdirectory nella cartella /var/log. Ad esempio /var/log/apache2 contiene i files di log relativi al web server Apache 2.

Log in formato non leggibile ad occhio umano
Alcuni files di log salvati nella cartella /var/log vengono salvati in un formato utilizzabile solo da altre applicazioni e non manualmente. Ad esempio:

Log con errori di login
Eventuali errori di login vengono registrati nel file /var/log/faillog in un formato non leggibile ad occhio umano. Per visualizzare gli errori recenti di login:
faillog
Log con gli ultimi login

Gli ultimi login vengono registrati in /var/log/lastlog. Per leggere il contenuto del file è necessario utilizzare il comando lastlog.

Come Configurare la Tastiera

Forse non sai che è possibile personalizzare la tastiera del PC. Sebbene siano universalmente diffuse nel mondo dell’informatica, le tastiere possono rivelarsi per molti utenti sorprendentemente poco conosciute. Tuttavia, anche chi usa solo occasionalmente il computer sarà di certo felice di risparmiare tempo e fatica nella battitura di un documento.

A questo scopo windows mette a disposizione degli utenti alcuni piccoli accorgimenti per personalizzare la tastiera e renderla più maneggevole e adatta alle loro esigenze. Nel pannello di controllo si trova l’icona tastiera: con un doppio clic su di essa si aprirà la finestra proprietà tastiera. La maggior parte delle opzioni riguarda la velocità, cioè la reattività alla pressione dei tasti.

Nella linguetta velocità troverai i comando ritardo di ripetizione e velocità di ripetizione. Il primo si riferisce al tempo necessario perchè la pressione continuata di un tasto provochi la ripetizione del carattere corrispondente. Molte persone nel corso della scrittura mantengono i tasti involontariamente premuti più tempo del dovuto.

Il comando velocità di ripetizione regola invece la velocità con cui a tasto premuto, il carattere si visualizza sullo schermo. Converrà regolarla in modo opportuno, per evitare che la pressione di un tanto mantenuta per pochissimi secondi provochi un numero eccessivo di battute. Analogamente è possibile modificare la velocità dell’intermittenza del cursore.

Bisogna poi segnalare che sul mercato ci sono tastiere, specialmente quelle dedicate al gioco, che vengono vendute con programmi che permettono una configurazione dettagliata. Per dettagli è possibile vedere questa guida sulle tastiere gaming su Sceltatech.com.

Le normali tastiere sono comunque adatte per le esigenze della maggioranza delle persone.

Linea di Comando Linux

In poche parole la linea di comando è un’insieme di strumenti che trasformano quello che in una comune interfaccia grafica diventerebbe un lavoro lungo e tedioso in un lavoro di pochi secondi. Ad esempio rimozione delle ultime quattro righe da un insieme di files di grandi dimensioni potrebbe essere un processo complesso se eseguito da un’applicazione grafica, ma può diventare banale utilizzando la riga di comando.

Risulta essere importante sapere che i i sistemi di Linux base mancano completamente di interfaccia grafica. Per questo è importante essere capaci ad utilizzare la linea di comando ed avere una conoscenza sufficiente per eseguire alcuni lavori di manutenzione.

I comandi possono sembrare complessi vista la loro tendenza ad essere abbreviati.

Shell Prompt

Per ogni distribuzione di Linux la linea di comando sembrerà leggermente differente. Ad esempio si potrebbe vedere il nome utente, il simbolo ‘@’, il nome della macchina, la directory corrente e una sorta di simbolo per indicare la fine del prompt (qui, un segno di dollaro).

user@linux ~/$
Si può anche vedere il tuo nome utente, uno spazio, il nome di dominio completo del computer, il percorso completo della directory di lavoro un simbolo per indicare la fine del prompt (un cancelletto).

user linux.test.org /home/user#
Il prompt varia da sistema a sistema in base ad un certo numero di cose. Ad esempio, può essere la configurazione di default impostata dai creatori della vostra particolare distribuzione Linux. Potrebbe averlo configurato la persona che amministra il computer. Il modo di configurare l’aspetto del prompt dei comandi dipende dalla shell che si utilizza.

La shell è quella che più comunemente viene identificata come “la riga di comando”, quando, in realtà, è semplicemente un software che fornisce un’interfaccia per i servizi di un kernel. La distinzione tra la ‘shell’ e la ‘linea di comando’ è semplicemente che la shell si riferisce a un software specifico (ad esempio BASH, Tch, ksh, etc) che fornisce un’interfaccia alla riga di comando. La maggior parte dei moderni sistemi Linux usano BASH (Bourne Again Shell) come shell di default.

Come Funziona Logwatch su Linux

Logwatch è una utility utilizzata per controllare i log di sistema e generare in automatico dei report automatici che possono essere inoltrati all’amministratore di sistema via mail. Questi report aiutano gli amministratori di sistema a controllare eventuali attività illecite senza dover analizzare manualmente i logs.

Configurare Logwatch

Una volta installato Logwatch, dovrete configurarlo per inoltrare i report via email. Anche se è consigliabile studiare l’intero file di configurazione le righe più importanti da cambiare nel file /usr/share/logwatch/default.conf/logwatch.conf sono le seguenti:
Output = mail
Format = html
MailTo = myemail@mydomain.com
MailFrom = logwatch@mydomain.com
Utilizzando queste impostazioni Logwatch inoltrerà i report in formato HTML.
Per controllare che Logwatch funzioni correttamente utilizzare questo comando:
logwatch
Una volta lanciato questo comando dovrete controllare la vostra email per essere sicuri che Logwatch funzioni correttamente. Controllate anche la casella spam nel caso in cui queste mail siano viste come spam.

Aggiungere un crontab per Logwatch

Potete aggiungere un cron job for Logwatch per fare in modo di ricevere giornalmente nuovi reports. Per aggiungere al crontab un nuovo valore utilizzare il comando crontab -e. In questo esempio il Logwatch viene lanciato all’1 del mattino ogni giorno:
# m h dom mon dow command
0 1 * * * /usr/sbin/logwatch

Molto interessante.