Dividi et impera

Split - dividi e gestisci

Split – dividi e gestisci

 

 

Cosa fare quando diventano troppo ingombranti

Se un file è troppo grande per essere archiviato su un supporto CD/DVD, oppure quando un allegato supera la dimensione massima consentita per le e-mail, bisogna ridurne le dimensioni, cioè dividere il file in più parti. Per farlo abbiamo a disposizione il comando split (dividere) che ci permette di spezzare un file in più parti, ognuna delle quali con una dimensione predefinita. Split inoltre, funziona sia su file di testo che su binari.

Grazie al comando split quindi possiamo dividere un file sia di testo o multimediale in tanti pezzi più piccoli.

Supponiamo di avere un file avi di 2GB è vogliamo masterizzarlo in un normale cd di 700 MB vista la notevole dimensione del file video la masterizzazione non è possibile ed ecco che ci viene in aiuto il comando split, permettendoci di dividere il file in piu’ tronconi; la sintassi del comando per effettuare la divisione del file è la seguente:

split -b 500MB file.avi

Bene, analizziamo quello che abbiamo scritto con l’opzione -b 500MB indichiamo al comando di dividere il nostro file avi in altri della grandezza di 500 MB, i nomi dei file di output verranno assegnati utilizzando le letteer nel seguente modo : “aa”, “ab”, “ac” ecc.

cosi’ una volta dato il comando otterremo il seguente risultato :
xaa
xab
xac
xad
xae

per ricomporre i vari spezzoni del file in un unico file basterà servirci del comando cat.

cat x?? > file_ricostruito.avi
risultato finale :  2,0G    file_ricostruito.avi
Il parametro -b è ciò che definisce la dimensione delle parti risultanti. È possibile utilizzare suffissi, come KB (Kilobyte: 1000 bytes), MB (Megabyte: 1000 × 1000 byte), GB (Gigabyte: 1000 × 1000 × 1000 byte), TB, PB, EB, ZB, YB. In alternativa è possibile utilizzare il suffisso EIC K (Kibibyte: 1024 bytes), M (Mibibyte: 1024 × 1024 byte), G (gibibyte: 1024 × 1024 × 1024 byte)….. esempio:
split -b 1K file_to_split.bin
split -b 10M file_to_split.bin
split -b 1KB file_to_split.bin
split -b 10MB file_to_split.bin

dividere un file per le linee

split inoltre ci permette di dividere un file di testo per le linee e non per le dimensioni delle parti che ne derivano.
Il parametro per dividere un file di testo per le linee è -l seguito dal numero di linee, esempio:

split -l 20 file_to_split.txt

Questo creerà un file per ogni 20 righe nel file originale, così se il file ha 54 linee, sarebbero creati i file xaa (righe 1-20), xab (linee 21-40) e xac (linee 41-54).

Dynamic DNS con Duck

Dusck DNS

Dusck DNS

Il DNS Dinamico o DDNS, è una tecnologia che consente di associare un’indirizzo DNS ad un’indirizzo IP dinamico, solitamente un indirizzo IP privato di utenza internet domestica.
Questa funzionalità ci consente di mantenere uno stesso indirizzo pur avendo una connessione con IP variabile, consentendoci quindi di poter accedere da remoto al nostro sistema senza dover utilizzare un’indirizzo IP statico.

Duck DNS è un servizio web gratuito (basato su Amazon EC2) che ci consente di avere il nostro DNS Dinamico correlato al nostro indirizzo IP; una volta creato dovremo impostarlo nel nostro router (nella maggior parte dei router è disponibile questa opzione) , impostando le regole di PortMapping, in maniera tale da consentici l’accesso da remoto al nostro sistema.

Il team The Fan Club (noto per lo sviluppo di Grive Tools il miglior client per Google Drive per Linux) ha creato il Duck DNS Setup, un semplice script che ci consente di impostare correttamente Duck DNS in maniera tale da segnalare eventuali cambiamenti del nostro indirizzo IP.

Duck DNS Setup è disponibile in due versioni, una a riga di comando e l’altra con interfaccia grafica (richiede di avere installato il pacchetto zenity cron e curl sulla nostra distribuzione), inoltre il tool è disponibile anche per sistemi quali Apple Mac OS X e Windows.
Lo script si occupera’ anche di andare ad aggiornare automaticamente il nostro indirizzo IP in Duck DNS ogni 5 minuti.

– INSTALLARE DUCK DNS 
Prima di procedere con l’installazione di Duck DNS Setup dovremo procedere alla creazione di un’account sul sito Duck DNS , e per farlo ci basta collegarci sulla pagina indicata e cliccare in alto su Login in Twitter, Facebook, Reddit o Google. Una volta effettuato il login dovremo creare un nuovo indirizzo correlato al nostro IP, che avra’ una forma del tipo:

http://<nome scelto>.duckdns.org

Una volta creato un’account bastera’ scaricare la versione a riga di comando da QUI ( Duck DNS Setup – Linux/OSX Command Line) o con interfaccia grafica ( Duck DNS Setup – Linux GUI) da questa pagina.

Per la versione di Duck DNS Setup a riga di comando basta estrarre il file .tar.gz e spostare il file duck-setup.sh nella home e da terminale digitare:

chmod +x duck-setup.sh
./duck-setup.sh

Una volta lanciato lo script ci verrà chiesto di inserire l’indirizzo Duck DNS associato al nostro IP (precedentemente creato) e successivamente il lungo codice Token, assegnato sulla pagina di creazione del dominio, come verifica;
al termine ci verrà confermata l’attivazione di Duck DNS sul nostro sistema

Per rimuovere Duck DNS Setup basta digitare:

./duck-setup.sh remove

oppure

./duck-setup-gui.sh remove

e confermiamo la rimozione

Come criptare traffico DNS con DNSCrypt Proxy

DnsCrypt-Proxy

DnsCrypt-Proxy

Ogni giorno moltissimi PC subiscono, durante la normale navigazione, una modifica delle richieste DNS, tecnica che rientra nel pericoloso campo del phishing : questo tipo di minaccia è subdola e molto pericolosa, perché permette ad un malintenzionato di reindirizzare le vere pagine web (digitate nel browser) verso siti civetta, trappole per rubare piu’ dati sensibili possibili, come utenze di banca password ecc, e spesso pieni di malware.

La minaccia è assolutamente concreta su qualunque sistema quindi anche su sistemi GNU/Linux, perché i DNS vengono utilizzati per risolvere gli indirizzi su qualsiasi PC con qualsiasi sistema operativo.

In questo articolo vedremo come criptare il traffico DNS su Ubuntu 14.04 per renderlo immune a questo tipo di minaccia, così da proteggerci in un’unica soluzione da spionaggio, spoofing e attacchi “man-in-the-middle”.

Criptare traffico DNS su Ubuntu con DNSCrypt
Sergey “Shnatsel” Davidoff, uno degli sviluppatori elementaryOS, mantiene un PPA per dnscrypt-proxy: possiamo quindi facilmente installare questo pacchetto sul nostro sistema Ubuntu.

Installiamo digitando da terminale:

sudo add-apt-repository ppa:shnatsel/dnscrypt
sudo apt-get update
sudo apt-get install dnscrypt-proxy

Se questa procedura non dovesse funzionare si puo’ comunque decidere di scaricare il pacchetto .tar.bz2 e procedere all’installazione nel seguente modod :

URL repository per il download del package : dnscrypt-proxy package

Una volta scaricato il pacchetto, prima di passare all’installazione sara’ bene effettuare una verifica della sua integrita nel seguente modo :

# openssl dgst -sha256 dnscrypt-proxy-1.4.2.tar.bz2
SHA256(dnscrypt-proxy-1.4.2.tar.bz2)= 766bcd8874cd6cbfeeeb7246c75c39ddc14317ad81ad713bd6cfc9529b2f0c0d

# drill -D TXT dnscrypt-proxy-1.4.2.tar.bz2.download.dnscrypt.org

Nel caso in cui il comando drill ritornasse un errore dovrete installare il seguente pacchetto sulla vostra macchina :

apt-get install ldnsutils

a questo punto dovreste avere nella risposta una riga come questa

;; ANSWER SECTION:
dnscrypt-proxy-1.4.2.tar.bz2.download.dnscrypt.org. 10000 IN TXT “766bcd8874cd6cbfeeeb7246c75c39ddc14317ad81ad713bd6cfc9529b2f0c0d”

in cui poter verificare che il codice numerico sia uguale al vostro e poter cosi’ procedere con l’installazione sicura del pacchetto.

bunzip2 dnscrypt-proxy-1.4.2.tar.bz2; tar xvf dnscrypt-proxy-1.4.2.tar -C /opt/
cd /opt/dnscrypt-proxy
./configure && make -j2
make install

se si dovesse presentare un errore di questo tipo: configure: error: libsodium >= 0.5.0 not found
il consiglio e’ quello di scaricare ed installare il pacchetto richiesto al seguente sito ” libsodium

cd /opt/llibsodium-0.5.0#
./configure --prefix=/opt/dnscrypt-proxy-1.4.2/
make && make check
make install

Per una maggiore sicurezza, il pacchetto utilizza un utente di sistema dedicato, senza privilegi – DNSCrypt configurera’ in modalita’ chroot la directory home dell’utente dedicato senza applicare privilegi di root.

NB: per Ubuntu 14.04 e derivate il pacchetto potrebbe interferire con la procedura di spegnimento, bloccando il PC. Possiamo risolvere digitando da terminale.

sudo ln -s /etc/apparmor.d/usr.sbin.dnscrypt-proxy /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.dnscrypt-proxy

Una volta installato DNSCrypt, bisogna fare in modo che la nostra connessione attuale (sia Ethernet che WiFi) utilizzi DNSCrypt per risolvere gli indirizzi DNS.

D’ora in avanti il nostro server DNS sarà 127.0.0.1

Configuriamo questo indirizzo aprendo il file /etc/resolv.conf ed inseriamo come voce

nameserver 127.0.0.1

tutte le altre impostazioni di DNSCrypt  possono essere modificate con estrema facilità editando il file /etc/default/dnscrypt-proxy.

sudo gedit /etc/default/dnscrypt-proxy

Un elenco di resolver DNS pubblici di DNSCrypt possono essere trovati nel link successivo.

Lista DNS Server pubblici

Per avviare il servizio facilmente ci bastera' digitare:

# dnscrypt-proxy --local-address=127.0.0.1 --daemonize

oppure

# dnscrypt-proxy --local-address=127.0.0.1:40 --daemonize

ps: 40 e’ la porta di utilizzo alternativo per filtrare il traffico, ma potete decidere voi se e quale usare.

NGINX ecco le ragioni per cui dovreste usarlo

nginx fast web servernginx (pronunciato come “engine-x”) è un web server/reverse proxy leggero ad alte prestazioni; è anche un server proxy di posta elettronica (IMAP / POP3), rilasciato sotto licenza BSD-like. Funziona su sistemi Unix, Linux, varianti di BSD, Mac OS X, Solaris e Microsoft Windows.

 

nginx fornisce rapidamente i contenuti statici con un utilizzo efficiente delle risorse di sistema. È possibile distribuire contenuti dinamici HTTP su una rete che utilizza i gestori FastCGI (ad esempio php5-fpm, php-fastcgi) per gli script, e può servire anche come un bilanciatore di carico software molto capace.

nginx utilizza un approccio asincrono basato su eventi nella gestione delle richieste in modo da ottenere prestazioni più prevedibili sotto stress, in contrasto con il modello del server HTTP Apache che usa un approccio orientato ai thread o ai processi nella gestione delle richieste.

nginx è più leggero e meno dispendioso di memoria rispetto ad Apache e già questo è un punto a favore del web server russo. Poi, nonostante sia più compatto, garantisce prestazioni migliori rispetto al concorrente, infatti con un bassissimo utilizzo di risorse, nginx garantisce tempi di risposta eccellenti anche in presenza di un numero molto elevato di connessioni concomitanti e, con un’occupazione di memoria pari a un quarto di quella pretesa da Apache, nginx è capace di garantire fino a quattro volte il numero di connessioni contemporanee gestite dal concorrente. Di fronte a questa verità, siti ad alto traffico come WordPress.com, YouTube e tanti altri non potevano non effettuare il cambio e spostarsi su nginx.

Secondo il Web Server Survey Netcraft di febbraio 2014, nginx è risultato essere il terzo server web più utilizzato in tutti i domini (15,00% dei siti esaminati) e il secondo server web più utilizzato per tutti i siti “attivi” (13,46% dei siti esaminati).

Una cosa importante da capire, comunque, è che nginx possiede un’architettura event-based ovvero, detta in modo semplice, non necessita di effettuare la creazione di tanti processi per quante richieste siano in esecuzione, ottimizzando l’uso di memoria al contrario di Apache che, in certi casi, può provocare problemi di memoria su WordPress o altri CMS. Apache usa infatti un thread per connessione, mentre nginx lavora in modo asincrono con thread non bloccanti, il che riduce l’uso di RAM ed ottimizza l’esecuzione dei processi.

Una delle caratteristiche che più colpisce di nginx è la capacità di supportare nativamente il load balancing, per cui possiamo utilizzare questa tecnica per scalare velocemente i server HTTP. Con il load balancing di nginx possiamo distribuire il traffico fra differenti server, definiti in un gruppo nel file “nginx.conf”, in questo modo, ad esempio, se in un particolare momento operativo dobbiamo aggiungere un nuovo webserver al nostro stack LAMP, possiamo semplicemente inserirlo nel gruppo di server gestito dal file nginx.conf. In seguito al reload della configurazione (nginx -s reload), nginx effettuerà le operazioni di load balancing fra tutti i server indicati nel file di configurazione, compreso l’ultimo appena inserito.

Anche l’installazione di nginx è semplicissima e si può effettuare da qualsiasi shell-bash con una sola riga di comando. Nello specifico sulle distribuzioni Ubuntu e Debian scriveremo:

apt-get install nginx

mentre per CentOS, Red Hat Linux Enterprise e Fedora digiteremo:

yum install nginx

Caratteristiche HTTP di base

  • Gestione dei file statici, file di indice, e auto-indicizzazione
  • Reverse proxy con caching
  • Bilanciamento del carico
  • Tolleranza agli errori
  • Supporto SSL
  • Supporto FastCGI con il caching
  • Server virtuali basati su nome ed IP
  • Streaming FLV
  • Streaming MP4, utilizzando il modulo streaming MP4
  • Autenticazione di accesso nelle pagine web
  • Compressione gzip
  • Capacità di gestire più di 10000 connessioni simultanee
  • Riscrittura degli URL
  • Log personalizzato
  • include server-side
  • resistente agli attacchi di Slowloris
  • WebDAV

Nel prossimo articolo inizieremo a vedere in modo dettagliato quali siano le migliori configurazioni.

Raspberry Pi B+

Raspberry Pi B+E’ da poco uscito il nuovo modello, il Raspberry Pi B+ , per chi non sapesse di cosa stiamo parlando consiglio di leggere il primo articolo “Raspberry Pi – Prima installazione” per farsi un’idea del prodotto di cui stiamo parlando.

Il modello B+ e’ l’ultima versione della serie basata sul modello B, per coloro che preferiscono il modello A, sappiate che anche per questa scheda e’ appena uscita la versione A+ di cui parleremo in uno dei prossimi articoli; a livello hardware nulla e’ cambiato, il B+ usa il modulo GPU Broadcom BCM2835 abbinato alla, seppur forse datata, CPU ARMv6 a 700MHz e 512 MB di ram. La vera novita’ e’ che la scheda ha subito una vera e propria “rinfrescata” progettuale, migliorando la disposizione dei componenti.

Le porte in dotazione ora non sono piu’ sparpagliate come prima, infatti adesso  solo due lati della scheda sono dedicati alle connessioni ed alla cavetteria e sono presenti anche due porte USB in piu’ (4 in totale).

Le uscite dell’audio analogico e la porta per il video composito sono state accorpate in un unico jack, cosa che ha permesso di recuperare prezioso spazio senza dover eliminare tali uscite, ed anche le carenze, esistenti sulla precedente versione, riguardo alla qualita’ non perfetta dell’audio analogico, ora sono state perfezionate,

La revisione progettuale ha anche portato ad un minore assorbimento di energia elettrica di circa 500mW, ed anche il precedente slot per la scheda SD (che non era proprio ottimale nell’utilizzo) e’ stato sostituito, sul lato B, da uno slot per uSD.

Lo stesso bus GPIO e’ adesso piu’ ambpio in virtu’ dei 14 pin aggiuntivi (per un totale di 40) che da al Raspberry nuovi impieghi che fino ad oggi gli erano impossibili, aumentando cosi’ per noi utilizzatori le quasi infinite possibilita’ di utilizzo in progetti di ogni tipo.

 

SCHEDA Raspberry Pi B+

Produttore : RPi Foundation
Sito Web     : www.raspberrypi.org
Prezzo         : € 40
Giudizio      : il nuovo restyling ha portato benefici in ogni aspetto del prodotto che ha cosi aumentato e migliorato le sue possibilita’ d’impiego, non che’ di facilita’ d’uso, ed il suo rapporto qualita’ prezzo rimane imbattibile. Per me e’ un bel 9.