Ottimizzare la connessione a Internet

wondershaperCon wondershaper diventa più veloce e reattiva

Se la connessione ad Internet qualche volta sembra essere lenta nella risposta, in particolare se utilizzata contemporaneamente da più applicazioni, allora significa che siamo in presenza di un cosiddetto “collo di bottiglia”, una strozzatura nel vero senso della parola, che rallenta irrimediabilmente la velocità di connessione e di conseguenza la navigazione.

Questo avviene perché, nella maggior parte dei casi, i provider privilegiano di norma la capacità di “smaltire” le richieste di download sacrificando la reattività della rete. Per fortuna GNU/Linux permette di aggirare questi fastidiosi comportamenti, rendendo così più fluido e in certi casi anche più veloce il collegamento a Internet.

Ottenere questo risultato non è proprio immediato, per questo motivo è stato creato wondershaper. Una volta installato il tool tramite

sudo apt-get install wondershaper

bastera’ eseguirlo indicando l’interfaccia di rete utilizzata per la connessione a Internet, ad esempio: wondershaper wlan0 4096 512. La voce wlan0 indica l’interfaccia di rete attraverso la quale il vostro PC è connesso al router. Questa può essere diversa e dipende dal sistema di connessione utilizzato, ad esempio ppp0 oppure eth0. Sempre in relazione all’esempio precedente, 4096 indica la velocità di download e 512 quella di upload, in modo che sia GNU/Linux a gestire direttamente le code e non il provider, a tutto beneficio della velocità della connessione. Per eseguire un prova,che come sempre consiglio di fare su di una Virtual Machine, basta scaricare un file di grosse dimensioni e contemporaneamente lanciare un ping; i tempi di risposta risulteranno molto diversi anche diminuendo solo di poco la velocità massima di connessione, vi consiglio quindi di fare diversi test. Per avere una base di partenza il consiglio e’ quello di fare un test di velocita’ della vostra connessione ADSL tramite il link di Speedtest.

Dopo aver individuato la configurazione ottimale, bastera’ configurare lo script wondershaper per rendere le modifiche definitive ed eseguirlo automaticamente al boot (vedi sezione “approfondimenti configurazione ottimale”) , oppure si puo’ configurare nel seguente modo:

Modifiche nel file /etc/network/interfaces

iface wlan0 inet dhcp
    up /sbin/wondershaper wlan0 4096 512
    down /sbin/wondershaper remove wlan0

Se i test non dovessero essere soddisfacenti e voleste tornare alla configurazione iniziale bastera’ non modificare  lo script di wondershaper ed invece dare il seguente comando :

sudo wondershaper clear INTERFACCIA

dove ovviamente con INTERFACCIA si intende sempre l’interfaccia di rete precedentemente indicata, esempio :

sudo wondershaper clear wlan0

Approfondimenti configurazione ottimale

Il file /usr/share/doc/wondershaper/README.Debian.gz descrive più in dettaglio il metodo di configurazione consigliato dal responsabile del pacchetto. In particolare, si consiglia di misurare la velocità di caricamento e scaricamento in modo da valutare al meglio i limiti reali.

 

Firehol il firewall flessibile

fireholSi parla spesso di come proteggere il proprio PC/Server e la parola che sicuramente ricorre piu’ spesso e’ FIREWALL, non c’e’ dubbio.

Il problema che salta all’occhio di chiunque si sia mai cimentato con la “scrittura” delle regole di IPtables e derivati, e’ la non immediata semplicita’ nel comprendere la giusta sintassi da utilizzare e dunque nel capire il corretto posizionamento delle tante/tantissime variabili che rendono questi strumenti ottimi nel tenere lontani la maggior parte dei malintenzionati .

Uno strumento che potra’ certamente darvi una mano e’ il tool FireHol.

FireHOL è un linguaggio per esprimere le regole del firewall, non semplicemente uno script che produce un qualche tipo di firewall.” I file di configurazione di FireHOL sono script shell (ma di fatto non lo sembrano poiche’ sono semplici che più semplici non si può).

FireHOL viene fornito con firehol-wizard, che crea un file di configurazione che è poi necessario modificare a mano.

Il suggerimento migliore che posso dare rimane quello di utilizzare sempre, soprattutto all’inizio, le macchine virtuali, per  riuscire a prendere dimestichezza con la nuova tecnologia.

Si tratta dunque di un particolare software che, tramite un “semplice” file di configurazione, permette di impostare velocemente le regole del firewall per proteggere l’accesso dalla LAN verso Internet e viceversa. Il file in questione si trova in /etc/firehol/firehol.conf, quindi apriamolo con sudo vim /etc/ firehol/firehol.conf, cancelliamone il contenuto pre esistente e scriviamo quanto segue:

Anche l’installazione e’ semplice come bere un bicchier d’acqua

sudo apt-get install firehol

Questo e’ un piccolo esempio utile per dare un’idea della metodologia di configurazione del file:

#Imposto la LAN eth0 scheda di rete verso internet

interface eth0 internet

# Di default non accettare nessun pacchetto

policy reject

protection strong

#Accetta solamente questi servizi

server ssh accept

server ping accept

server http accept

server https accept

server dns accept

client ping accept

client http accept

client https accept

#Imposto eth1 come rete interna lan

interface eth1 lan

#Accetta tutto il traffico nella LAN interna

policy accept

#Imposto le tabelle di routing

#Il traffico dalla LAN (eth1) reindirizzato verso eth0

router lan2internet inface eth1 outface eth0

# Regola per il masquerade

masquerade

#Accetta tutto il traffico

router all accept

#In ingresso, invece, fai il contrario...

router internet2lan inface eth0 outface eth1

** Le righe precedute dal simbolo # sono commenti che possono essere omessi, ma che possono essere sempre di grande aiuto nel rileggere vecchie configurazioni. Dopo aver inserito tutte le regole, salviamo e usciamo dall’editor.

A questo punto, bastera’ impostare il firewall in modo che si attivi automaticamente all’avvio del server. Apriamo dunque il file firehol con sudo vim /etc/default/firehol e cambiamo la riga START_FIREHOL=NO in START_FIREHOL=YES.

Infine, avviamo il firewall con il comando sudo /etc/init.d/firehol start. Il nostro lavoro è quasi finito, ma mancano ancora alcuni passi.

Buone configurazioni!

Antivirus su Linux ?

ClamavAvrete sicuramente sentito dire che non serve un antivirus per linux perché i virus vengono creati per Windows e perché, qualora vengano scritti anche per Linux, sarebbe molto difficile che riescano a fare danni.
Questo in buona parte è vero perché Linux, oltre ad essere per sua natura meno vulnerabile di Windows, adotta da sempre tecniche che non permettono l’esecuzione di codice critico da parte degli utenti “piu’ esperti“.
E allora che senso ha produrre un antivirus per Linux?
I motivi per i quali è consigliabile installare un antivirus per linux possono essere molti. In genere quando c’è una condivisione di dati tra sistemi operativi diversi è buona norma installare un antivirus su entrambi i sistemi; quindi è consigliabile installarlo in presenza di server di rete dove sono presenti condivisioni di rete verso computer Windows, oppure nei sistemi dual-boot che condividono una partizione per i dati o in tutti i sistemi linux nei quali si utilizza un cloudstore come dropbox.
Detto questo vediamo di parlare di quello piu’ storico ed utilizzato.

ClamAV
In ambito Linux è il più conosciuto perché è completamente open source e si integra benissimo con altri programmi come server email, proxy ecc. E’ disponibile nei repository delle principali distribuzioni, ed è quindi facilmente installabile. Per gli utenti desktop esiste anche frontend grafico ClamTK che ne facilita l’utilizzo da parte degli utenti meno esperti.

INSTALLAZIONE
In questo articolo viene indicato come installare e utilizzare l’antivirus clamav,  che nasce come applicativo da linea di comando.

:~# sudo apt-get install clamav clamav-freshclam

* Quindi inizializzare clavam scaricando i files delle definizioni con il comando freshclam

:~# clamscan --infected --remove --recursive /tmp

possiamo testare l’installazione eseguendo ad esempio

clamscan ~

Possiamo effettuare un primo controllo antivirus di tutta la home con l’opzione -r

clamscan -r /home

Se vogliamo visualizzare  solo i file infetti e il sommario evitando di visualizzare l’elenco dei files possiamo usare l’opzione -i

clamscan -i ~

Aggiornare i database delle definizioni dei virus

Per aggiornare i database delle definizioni dei virus come detto  si può usare

sudo freshclam

E’ decisamente più comodo effetture questa operazione in backgroud sfruttando il demone di freshclam. Freshclam, infatti, si installa anche come servizio con ad esempio:

sudo freshclam -d

si può controllare con

#~$ sudo sysv-rc-conf --list | grep clam
clamav-fresh 0:off 1:off 2:on 3:on 4:on 5:on 6:off

per impostare il demone in modo che effettui, ad esempio, due check al giorno per nuovi database delle definizioni si puo’ usare il comando

sudo freshclam -d -c 2

Per effettuare lo scan di tutto il sistema evidenziando solo i file infetti e producendo un allarme acustico in caso di rilevazione di virus si può utilizzare il comando

#~$ clamav -r --bell -i /home

Per registrare una scansione di tutto il sistema salvando i dati relativi ai file infetti si può usare un comando del tipo:

sudo clamscan -r / | grep FOUND >> /path/clamav-data-scan.txt

Clamav non effettua le disinfezione dei file. I file infetti possono essere post

Clamav PPA

Per disporre sempre della versione più recente di ClamAV si può utilizzare il ppa specifico che si installa con

sudo add-apt-repository ppa:ubuntu-clamav/ppa
sudo apt-get update
sudo apt-get install clamav nautilus-clamscan

Primo Test

# clamscan --infected --remove --recursive /home
----------- SCAN SUMMARY -----------
Known viruses: 4167603
Engine version: 0.98.1
Scanned directories: 13
Scanned files: 10
Infected files: 0
Data scanned: 0.03 MB
Data read: 0.03 MB (ratio 1.00:1)
Time: 52.978 sec (0 m 52 s)

in questo caso come si puo’ vedere nel sommario, non sono stati trovati virus, adesso per poter fare un test “reale” possiamo effettuare questo secondo test :

Secondo Test

# download test virus
Scaricate da questo link il file (virus) in questione
cd /home/<nime utente>/Scaricati/
wget http://www.eicar.org/download/eicar.com

adesso possiamo effettuare nuovamente la scansione

clamscan --infected --remove --recursive /home

il risultato finale dovrebbe essere come questo

./eicar.com: Eicar-Test-Signature FOUND
./eicar.com: Removed.

Buona caccia!

Cancellare veramente i dati

Cancellare-dati-navigazioneSiete sicuri di aver davvero cancellato quel file ?

Alla base di questo articolo c’è un semplice fatto: molto spesso capita di comprare un nuovo PC, o un nuovo disco esterno/chiavetta di memoria ecc…, e di vendere/regalare/prestare il device fino a prima utilizzato; molti credono, erroneamente, che basti svuotare le directory e, successivamente, svuotare il “cestino” per eliminare i dati che non vogliamo altri vedano.

Beh! non e’cosi, un dato scritto su di un supporto rimarra’ per sempre al suo posto a meno che non distruggiate fisicamente il supporto stesso.

Cosa fare allora oltre a passare sopra al disco con uno schiaccia sassi, smagnetizzarlo e bruciarlo, per porre fine all’esistenza di quei dati ?
Esistono per fortuna alcuni tool che sono in grado di “sovrascriverli” piu’ e piu volte, questo perche’ per rendere un dato quasi irrecuperabile ci vogliono almeno dalle 20 alle 35 sovrascritture. un semplice rm di un file o l’eliminazione tramite qualsiasi file manager non è sufficiente per rimuoverlo davvero dal vostro hard disk.

Quindi se si vuole veramente eliminare un file da un computer è necessario utilizzare comandi più sofisticati quali :

Dban: Darik’s Boot and Nuke (comunemente conosciuto come DBAN) è un progetto open source ospitato su SourceForge. Il programma è progettato per cancellare in modo sicuro un hard disk fino a quando i dati sono permanentemente rimossi e non più recuperabili, questo avviene sovrascrivendo i dati con numeri casuali generati da Mersenne twister o ISAAC (un PRNG).

Shred : Sovrascrive il file specificato più volte, al fine di rendere più difficile anche per l’hardware molto costoso recuperare i dati.

Oggi daremo un’occhiata al pacchetto secure-delete contenente alcuni programmi utili per eliminare in maniera “più sicura” un file, la memoria, lo spazio libero e/o lo spazio di Swap.

Per installare secure-delete in Debian, Ubuntu e Mint eseguire:

sudo apt-get install secure-delete

Il pacchetto dovrebbe essere disponibile anche in altre distribuzioni, controllate il vostro gestore di pacchetti cercando secure-delete o srm, o se non è disponibile si può prendere il pacchetto sorgente da sourceforge .

Il pacchetto di secure-delete viene fornito con quattro comandi:

  • srm Rimozione sicura; utilizzato per l’eliminazione di file o directory attualmente presenti sul disco rigido;
  • smem Ripulitura sicura della memoria; utilizzato per cancellare le tracce dei dati dalla memoria del computer (RAM);
  • sfill Ripulitura sicura dello spazio libero; utilizzato per cancellare tutte le tracce di dati dallo spazio libero su disco;
  • sswap Ripulitura sicura dello swap; utilizzato per cancellare tutte le tracce di dati da una partizione di swap.

SRM

SRM è stato progettato per eliminare i dati in maniera sicura, in modo che non possano essere recuperati da ladri, forze dell’ordine o altre minacce. L’algoritmo di cancellazione si basa sul documento :
Secure Deletion of Data from Magnetic and Solid-State Memory “,
presentato al 6° Usenix Security Symposium da Peter Gutmann, uno dei leader tra i crittografi civili.Il processo di cancellazione sicuro dei dati di srm avviene in questo modo:

  • 1 passaggio con 0xff
  • 5 passaggi casuali. /dev/urandom è utilizzato se disponibile come fonte RNG sicura.
  • 27 passaggi con valori speciali definiti da Peter Gutmann.
  • 5 passaggi casuali. /dev/urandom è utilizzato se disponibile come fonte RNG sicura.
  • Truncate del file

Come ulteriore misura di sicurezza, il file viene aperto in O_SYNC mode e dopo ogni passaggio viene invocata una chiamata di tipo fsync().

srm inoltre scrive i blocchi a 32k allo scopo di avere una maggiore velocità, di riempire i buffer di cache del disco per costringerli a svuotarsi e sovrascrivere i dati vecchi che appartenevano al file.

Opzioni di srm:

  • -d ignora i due file speciali costituiti con i punti . e .. dalla linea di comando. (così si può eseguirlo come “srm -d .* *”)
  • -f fast (ed insicuro): no viene usato /dev/urandom, e non viene utilizzato il modo sincronizzato.
  • -l diminuisce la sicurezza. Solo due passaggi sono scritti: uno con 0xff ed i valori in modalità casuale.
  • -l -l per una seconda volta per abbassare ulteriormanete la sicurezza: viene fatto solo un passaggio casuale.
  • -r modalità ricursiva, cancella le sottodirectory.
  • -v modalità dettagliata
  • -z pulisce l’ultima scrittura con zeri invece che con dati casuali

Alcuni esempi con srm:

1) Cancellare un file usando srm:

# srm /tmp/myfile.txt

2) Cancellare una directory usando srm:

# srm -r /tmp/mydir

Gli altri strumenti della suite

smem è stato progettato per cancellare i dati che possono trovarsi ancora nella memoria (RAM) in modo sicuro. Si noti che con le memorie SDRAM, i dati non si perderanno subito allo spegnimento del computer, ma saranno tenuti staticamente e questo può consentire cold boot attacks

sfill è stato progettato per eliminare i dati che si trovano su spazio disco non utilizzato in modo sicuro

sswap è stato progettato per cancellare i dati che possono trovarsi ancora sull’aread di swap in modo sicuro

Conclusioni

IMPORTANTE: Ricordatevi che quando si utilizzano questi strumenti bisogna sempre tenere presente che essi aggiungono un po’ di sicurezza in piu’, ma non garantiscono che i dati siano irrecuperabili.

Ubuntu Tips and Tricks

Ubuntu-trucchiUbuntu alcuni Trucchi per migliorane l’uso :

1. Cambiamo i programmi di default

Ubuntu viene distribuito con moltissimi programmi che fanno le cose in modo molto simile tra loro, ad esempio come editor di default è settato “nano”, per alcuni di voi pero’ potrebbe essere meglio cambiare e avere “vim”.

La strada più facile per farlo è usare il programma update-alternatives; questo tool di gestione mantiene dei link simbolici nel PATH /etc/alternatives ,  che determinano quali programmi lanciare di default, per alcuni programmi come ftp, system, editor, telnet, rsh, windows manager ecc…; per avere la lista completa basta digitare:
ls -la /etc/alternatives/

ora per modificare l’editor di default per passare da nano a vim è sufficiente digitare:

sudo update-alternatives –config editor

apparirà qualcosa simile a questo:

There are 3 alternatives which provide `editor’.

Selection Alternative
———————————————–
1 /usr/bin/vim
2 /bin/ed
*+ 3 /bin/nano

Press enter to keep the default[*], or type selection number:

a questo punto è sufficiente premere 1 per avere vim come editor di default.

2. Come installare un pacchetto:

Quasi tutti i software che volete installare in ubuntu sono presenti nei repositories di default ed è semplice installarli tramite programmi grafici come Synaptic o simili. Cosa succede però se si vuole installare un programma come ad esempio Opera (browser) che è disponibile per Ubuntu ma non è presente nei repositories?

In questo caso dobbiamo scaricare il pacchetto debian (.deb) e cliccarci con il tasto destro per poi  aprirlo con GDebi, in alcuni casi è sufficiente il doppio click, GDebi mostrera’ in modo grafico le informazioni sul pacchetto: cosa fa, le varie dipendenze, cosa contiene, ed un tasto per installarlo.

Se invece preferite fare tutto da linea di comando è sufficiente digitare

sudo dpkg -i <nomepacchetto.deb>

3. Sudo e gksudo

Se si e’ usato linux per un pò di tempo, conoscete la potenza distruttiva che può avere un programma lanciato male da root, può modificare la configurazione spostare file di sistema, distruggere dati importanti ecc…

Cosi in Ubuntu hanno pensato un sistema diverso; l’utente root esiste in Ubuntu ma non può essere usato se non attraverso il comando sudo.

Probabilmente già conoscete come funziona sudo tool, ma se volete lanciare un programma grafico come se foste root o un altro utente ? è semplice basta usare gksudo al posto di sudo. Se volete lanciare ethereal (che è un famoso sniffer) come root,  bastera’ lanciare dalla shell il comando gksudo ethereal , vi verra’ richiesta una password (quella del vostro utente) e il programma sarà avviato come utente, ma con i permessi di root, a patto che il vostro utente sia stato precedentemente inserito tra gli utenti nella lista dei sudoers (/etc/sudoers).
Ma in alcuni casi si ha davvero la necessita’ di usare proprio l’utente root da shell e, per ovviare a questo problema si puo’digitare :

sudo -i

4. Aggiungere utenti come admin

Quando installiamo Ubuntu, viene aggiunto in automatico il primo utente come sudoers, questo permette a quell’utente di poter lanciare comandi come se fosse un utente root scrivendo la sua password (cosi come spiegato al punto precedente).

Tuttavia se si aggiungono altri utenti questi non avranno tale privilegio; per poter dare anche ai nuovi utenti questo privilegio bisogna inserirli tra gli utenti “admin” , digitando quanto segue:

sudo usermod -G admin nomeutente

Se l’utente facesse già parte di un’ altro gruppo bastera’ aggiungere al comando l’opzione ” -a ” facendolo diventare:

sudo usermod -a -G admin nomeutente

Se preferite fare il tutto da interfaccia grafica potete andare in Sistema (System) -> Amministrazione (Administration) -> Utenti e Gruppi (Users and Groups), selezionare l’utente a cui si vogliono dare i permessi di sudo e cliccare con il tasto destro, scegliere Propietà e sotto  “Privileggi utente” selezionare “Amministrare il sistema”.

5. Aggiungere un nuovo desktop

Molti utenti non sono sicuri su quale desktop usare, a differenza di sistemi come windows, Linux prevede l’uso di molte, diverse, interfacce grafiche in base alle preferenze dell’utente, ogni Desktop Manager è completamente diverso dagli altri e offre funzionalità diverse, tra i più famosi troviamo Gnome (quello di default), KDE, Xfce e molti altri.

Ubuntu infatti viene distribuito con molti nomi e contenuti diversi oltre all’ Ubuntu classico infatti ci sono Kubuntu, Xubuntu, Edubuntu, ecc…  se se n’ è installato soltanto uno è possibile comunque installare gli altri digitando semplicemente quanto segue senza bisogno di scaricare di nuovo il CD:

sudo apt-get install kubuntu-desktop
sudo apt-get install edubuntu-desktop
sudo apt-get install xubuntu-desktop

Alcuni sono più semplici da usare mentre altri sono più veloci, altri ancora sono più belli, insomma ce n’è per tutti i gusti.

Naturalmente si possono installare anche da interfaccia grafica usando tool come Synaptic.

6. Avanzamento di versione

Ci sono diversi metodi per eseguire un avanzamento di versione da un rilascio di Ubuntu ad un’ altro. Questi descritti sono i metodi raccomandati sulle guide ufficiali, ma fate sempre molta attenzione poiche’ nulla e’ perfetto.

do-release-upgrade

Il metodo di avanzamento raccomandato per la Server Edition è l’utilizzo dell’utilità do-release-upgrade, installata in modo predefinito come parte del pacchetto update-manager-core e priva di alcuna dipendenza grafica.

I sistemi basati su Debian possono ricorrere anche al comando apt-get dist-upgrade. L’uso di do-release-upgrade è comunque raccomandato in quanto è in grado di gestire le modifiche necessarie alla configurazione di sistema tra i rilasci.

Per avanzare ad un nuovo rilascio, da un terminale digitate quindi :

do-release-upgrade

È anche possibile usare do-release-upgrade per avanzare a una versione di sviluppo di Ubuntu. Per fare ciò, usare l’opzione -d:

do-release-upgrade -d