La Pivacy dei Processi

Privacy dei Processi

Privacy dei Processi

Nella maggior parte dei sistemi GNU/Linux e’ consentito ad ogni utente di visualizzare i processi in esecuzione nel dato momento (real time) sul computer, tutti i processi…, utilizzando tool quali htop, glances etc. Questo puo’ rappresentare pero’ un problema dal punto di vista della privacy, in particolar modo li dove i pc vengono utilizzati in modalita’ multiutente (come ad esempio i server) , visto che altri utenti potrebbero sapere, senza alcuno sforzo, quali programmi stiamo eseguendo, in qualsiasi momento.

Questo comportamento del sistema per fortuna puo’ essere modificato a patto pero’ di disporre di un kernel superiore alla versione 3.2 (per sapere qual’e’ la versione attualmente installata sulla vostra macchina utilizzate il comando ” uname -a ” ). Infatti da questa versione in avanti e’ presente una specifica opzione per il comando mount, da passargli quando viene attivato il file system virtuale /proc , che agisce proprio sulla visibilita’ dei vari processi.

L’opzione in questione si chiama hide-pid (ossia nascondi il pid) e puo’ assumerre tre valori
0, 1, e 2.
Il valore 0 imposta il comportamento normale di visualizzazione senza limiti,
Il valore 1 rende impossibile l’accesso alle cartelle dei processi che non appartengono all’utente attualmente utilizzato,
Il valore 2 definisce invece il livello piu’ restrittivo, quindi le cartelle dei processi altrui verranno nascoste e non si potra’ quindi ne accedervi, ne sapere nulla del loro contenuto compresa la loro esistenza.

Pera ttivare tale funzione bastera’ utilizzare il comando mount con il parametro aggiunto “hidepid” :

esempio

# sudo mount - o remount,rw,hidepid=2 /proc

…dopo aver dato invio ed inserita la password dell’amministratore di sistema, il livello di massima privacy sara’ stato impostato. Chiaramente per l’utente  root tali limitazioni non valgono.

Per rendere definitive le modifiche sopra testate si dovra’ editare il file /etc/fstab , ed aggiungere, nella riga relativa al file system /proc, l’opzione hidepid che meglio si adatta alle nostre esigenze.

 

#HidepidKernelPrivacy

Crea il tuo diario su Linux con RedNoteBook

RedNoteBook il diario per Linux

RedNoteBook il diario per Linux

Documentare i processi ed i sistemi, o semplicemente tenere un diario degli avvenimenti quotidiani, sono cose che molti utenti di computer fanno sempre più spesso, per poter tenere traccia delle molte modifiche e, delle nuove configurazioni, che si apportano ai propri sistemi nel continuo test delle nuove tecnologie a cui, tutti noi appassionati d’informatica, cerchiamo di tenere testa.

RedNotebook è un’applicazione professionale che permette di creare un log, o diario, di tutte le attivita’ fatte, così come anche di tutti i problemi con la rete. L’applicazione può essere vista dunque come un diario professionale per esperti IT, anche se può essere utilizzato facilmente da utenti casalinghi.

RedNoteBokk e’ un’applicazione open source che consente di tenere un diario, così come si organizzano i propri impegni con un’agenda.

Quando si tratta di un uso professionale, RedNotebook porta una varieta’ di caratteristiche che sono molto utili in questo ambiente. Prima di tutto, si possono inserire file, immagini, collegamenti web, così come suddividere le note in categorie assegnando loro anche delle etichette (tag), permette di codificare oggetti, il formato dei testi,  eseguire il controllo ortografico, eseguire il salvataggio automatico e così via. Con l’aiuto di RedNotebook è anche possibile memorizzare i dati desiderati in file di testo e fare un backup o un archivio, oppure è possibile utilizzare word clouds (parole e tag più utilizzati).

Una caratteristica che trovo molto utile in RedNotebook è la possibilità di esportare tutti i dati in formato PDF, Latex, HTML o anche testo semplice, senza alcun problema. Questo rende molto più conveniente accedere ai dati necessari, senza avere a che fare con i problemi che si hanno con le applicazioni che forniscono un’ unico formato.

L’interfaccia proposta da RedNotebook è molto attraente ed offre un accesso rapido a tutte le funzioni necessarie direttamente dall’interfaccia principale. Si può scegliere d’ inserire una nuova voce che può essere semplice, oppure è possibile utilizzare un modello tra quelli disponibili sulla piattaforma. Infatti sulla piattaforma sono gia presenti un sacco di modelli che sono adatti a varie situazioni, quindi non importa che cosa debbiate creare perche’, molto probabilmente, troverete un modello per esso.

Il word cloud di RedNotebook è pieno di tag e parole che è possibile utilizzare, e queste funzionano perfettamente se si vuole trovare voci simili su un determinato argomento.

Ad esempio, mettere note su immagini e messaggi è molto semplice ( tagging ). Non abbiamo riscontrato nessun problema durante la fase d’installazione dell’applicazione, anche perché RedNotebook è un progetto ormai di lunga durata e con numerosi sviluppatori ed utenti alle spalle, quindi la maggior parte dei bug sono già stati risolti.

Gestire il calendario in RedNotebook è molto semplice, ed e’ molto facile, ad esempio. passare in rassegna le date per trovare una determinata voce. Inoltre l’applicazione viene fornita di un pulsante “Oggi” che permette di accedere immediatamente alla data corrente.

L’approccio del diario in wiki-stile, sia per lavoro o per uso personale rende l’uso di RedNotebook molto più conveniente rispetto a qualsiasi altro programma simile. Tutte le voci sono indicizzate in modo naturale e tutto, nel complesso, risulta essere molto facile da navigare e visualizzare.

Nel complesso, abbiamo trovato RedNotebook essere un’applicazione molto interessante che è vicina alla perfezione per quanto riguarda le cose che vuole raggiungere. L’indicizzazione è molto veloce, la navigazione è veloce ed affidabile, e controllando le voci è altrettanto facile. Nel complesso, RedNotebook è un buon esempio di quello che dovrebbe essere un buon programma di journaling professionale, e se avete bisogno di una tale applicazione, RedNotebook è la scelta perfetta da fare!

INSTALLAZIONE
Scaricate i sorgenti da questo indirizzo:
http://sourceforge.net/projects/rednotebook/?source=directory

Installate le dipendenza necessarie:

sudo apt-get install python-yaml python-gtk2
sudp apt-get install python-webkit

Posizionatevi all’interno dela vostra home, nella cartella appena scaricata e scompattata ed eseguite l’installazione:

sudo python setup.py install

Eseguite da shell il programma:

rednotebook

Come controllare la rete dalla shell Linux

Monitoring dal Terminale

Monitoring dal Terminale

PREMESSA

Purtroppo rispetto a molte altre nazioni nel mondo e, nella stessa Europa, ci troviamo ad avere ancora delle connessioni ad Internet che, nella maggior parte del paese, sono a dir poco scandalose.

In precedenti articoli abbiamo provato a mettere un po’ di pepe al nostro pc lavorando sulla gestione della RAM oppure sulla modifica dei parametri del kernel tramite Sysctl, oppure accellerando la risoluzione degli indirizzi DNS tramite la creazione di un meccanismo di Cache usando, ad esempio, PDNSD.

Oggi vedremo come colmare quella parte di “monitoring” sulla velocita’ della nostra rete, presentando questo elenco di utilissimi tool, da riga di comando, che vi permetteranno di avere il polso della situazione in tempo reale. Troverete sicuramente quello che fa al caso vostro.

P.S. : I seguenti programmi sono tutti disponibili nei repository principali di Ubuntu, quindi per installarli bastera’ scrivere :

apt-get install nome del programma

NETWORK TOOL

IPTState : un’interfaccia simile a Top collegata alla vostra tabella connection-tracking di netfilter.
Utilizzando iptstate si può verificare in modo interattivo il traffico che attraversa il tuo firewall netfilter/iptables , ordinato per vari criteri, è possibile limitare la visualizzazione con vari criteri, ed e’ possibile cancellare gli stati dalla tabella.

Pktstat : visualizza un elenco in tempo reale delle connessioni attive viste su una interfaccia di rete, e quanta banda viene utilizzata. Parzialmente decodifica i protocolli HTTP e FTP per mostrare il nome del file che viene trasferito. Anche i nomi delle applicazioni X11 sono mostrate.

NetHogs : diversamente da altri, invece che “spacchettare” il traffico verso il “basso” per protocollo o per sottorete, come la maggior parte degli strumenti fanno, mostra la banda utilizzata dai vari programmi. NetHogs non si basa su un modulo del kernel speciale da caricare. Se c’è ad un tratto molto traffico di rete, si può lanciare subito NetHogs e vedere immediatamente quale PID è la causa. Questo rende facile individuare i programmi che sono impazziti e stanno improvvisamente prendendo tutta la vostra banda di rete.

IPTraf : un programma (storico) che raccoglie statistiche di rete per Linux. Anch’esso raccoglie una serie di dati come i pacchetti delle connessioni TCP e conteggio dei byte, le statistiche sulle interfaccie e gli indicatori di attività, dati TCP/UDP sul traffico, e traffico per LAN.

Bmon : bmon è un monitor di banda, destinato per il debug ed il monitoraggio real-time, in grado di recuperare le statistiche da vari tipi d’ingresso. Fornisce metodi di uscita vari tra cui un’interfaccia basata su librerie curses. L’insieme dei moduli per l’input sono specifici per ogni tipologia di architettura e prevedono un nucleo comune con l’elenco delle interfacce e dei loro contatori.

Il nucleo memorizza questi contatori e fornisce una stima della velocità ed una storia degli ultimi 60 secondi, minuti, ore e giorni ai moduli di uscita che li mostrano in base alla configurazione, durante l’esecuzione, è possibile selezionare l’interfaccia da controllare e premere il tasto “g” per vedere un grafico attivo come questo:

Speedometer : si tratta di un interessante progetto che permette di visualizzare e misurare la velocità dei dati attraverso una rete o dei dati che vengono memorizzati in un file,

Come potrete vedere, anche se si tratta di un tool basato sulla riga di comando, ha dei bei colori vivaci e altre cose che lo rendono uno strumento piuttosto user-friendly, ha la capacità di monitorare la velocità in tempo reale di download/upload delle connessioni di rete e può essere utilizzato anche per misurare la velocità di scrittura in un file system.

Nload : nload è un’applicazione da console che controlla il traffico di rete e l’utilizzo della larghezza di banda in tempo reale. Esso visualizza il traffico in entrata ed in uscita utilizzando due grafici e fornisce informazioni aggiuntive come quantità totale di dati trasferiti e min/max di utilizzo della rete.

 

La cosa migliore e’ sicuramente quella di testarli tutti, magari su macchine virtuali, per poter meglio decidere quali fanno esattamente al caso vostro.

 

#ControllalaRetedallaShell

PDFTK – Gestisci i tuoi pdf

PdfTk amministra i tuoi PDF

PDFTK amministra i tuoi PDF

Nell’immensita’ di Internet e’ ormai possibile trovare documentazione di ogni genere e, nella maggior parte dei casi, sara’ possibile scaricare un documento in formato .pdf. Ma cosa succede se, di uno stesso argomento di nostro interesse, ci ritroviamo con piu’ di un documento? Beh portarsi dietro, seppur in formato digitale, tanti documenti complica le cose perche’ per trovare l’informazione che ci serve in un dato momento dovremo aprire piu’ di un file o lanciare un find all’interno di diversi documenti.
E se invece potessimo unire tutti questi vari files in pochi pdf che trattano un macro argomento comune ??.

Possiamo farlo grazie ad un ottimo e semplice strumento, da riga di comando, che risponde al nome di PDFTK.

Introduzione

PDFTK è uno strumento open source cross-platform per manipolare documenti PDF, esso è fondamentalmente un front-end per la libreria iText (compilata in codice nativo utilizzando GCJ), capace di “dividere, unire, cifrare, decifrare, decomprimere, comprimere, e riparare” file PDF.

Installazione

Installare il pacchetto pdftk e’ davvero una passeggiata :

sudo apt-get install pdftk

Cosa puo’ fare

  • unire documenti PDF
  • dividere le pagine PDF in un nuovo documento
  • decifrare il documento se necessario (richiesta password)
  • cifrare il documento, se si vuole
  • compilare moduli PDF con dati FDF
  • applicare una filigrana allo sfondo
  • report sulle metriche del PDF, tra cui i metadati e segnalibri
  • aggiornare i metadati del PDF
  • allegare file a pagine PDF o al documento PDF
  • scompattare gli allegati pdf
  • dividere un documento PDF in pagine singole
  • decomprimere e comprimere la pagina
  • riparazione di un file pdf danneggiato (se e’ possibile)

Uso

Ad esempio, per unire i file file1.pdf file2.pdf file3.pdf  in un unico file file.pdf occorre digitare il seguente comando in una finestra di terminale:

pdftk file1.pdf file2.pdf file3.pdf cat output <nome_file>.pdf

Digitando il seguente comando si ottengono alcune informazioni d’uso per poter utilizzare tutte le altre opzioni sopra descritte:

pdftk --help

#PdftkManipolareDocumenti

Docker – costruire i contenitori

Docker costruire i contenitori

Docker costruire i contenitori

Recentemente abbiamo parlato della virtualizzazione tramite Docker (vedi articolo Docker – cosi cambia la virtualizzazione) e, prima di proseguire sara’ meglio rifare una piccola introduzione.

Docker e’ indubbiamente una valida alternativa alla virtualizzazione tradizionale nel mondo Linux. Questo tipo di virtualizzazione, detta a “container” non emula un’ intero hardware come fanno invece gli hypervisor tipo VMware, Virtualbox, Xen o KVM, ma crea invece dei “contenitori” nel sistema operativo dove possono essere messe in esecuzione applicazioni di vario genere in modo del tutto separato una dall’altra.

Dato che con il cloud il ruolo del sistema operativo diventa sempre meno importante perchè si punta più sullo strato applicativo, PaaS, rendendo il tutto più flessibile. A questo punto se dovessimo far girare 1000 clienti su un ambiente condiviso, diventerebbe interessante disporre di una tecnologia di virtualizzazione che riduca al minimo fisiologico gli overhead.

La virtualizzazione classica non è così, perchè per ogni ambiente applicativo, riservato ad un cliente, si dovrebbe  lanciare una intera macchina virtuale con dentro l’intero sistema operativo. E allora perchè non condividere lo stesso sistema operativo e invece isolare solo gli ambienti di esecuzione delle applicazioni , tipo application server, DB ecc…

I container sono dunque alla base dei moderni servizi cloud di tipo PaaS (Platform as a service) che usano questo tipo di virtualizzazione per misurare il consumo di risorse ed assegnarne i limiti.

Ad esempio, se su uno stesso server fisico, con una soluzione di virtualizzazione di tipo hypervisor si possono ospitare, supponiamo 50 virtual machines, con la virtualizzazione a container si potra’ arrivare anche a 1000 container. Questo perchè un container di per sè è solo un contenitore di processi, mentre una virtual machine completa contiene tutto un ambiente operativo emulato.

Il container può anche essere portabile, infatti ci basta copiare la directory che contiene il filesystem modificato dall’utente dopo la creazione del container, un piccolo file di configurazione, ed il container diventera’ eseguibile su qualsiasi sistema che supporti LXC.

Il concetto è talmente interessante, che qualcuno ha pensato di fare un sistema operativo Linux interamente basato sui container, in cui non c’è nemmeno un package manager perchè si assume che gli applicativi saranno solo in forma di container. Coreos è nato proprio con il principio di supportare ambienti di esecuzione a container, togliendo dal sistema tutto quello che non è strettamente necessario per farlo funzionare.

INSTALLAZIONE

Abbiamo tre possibili metodi d’installazione :

1) Centos

sudo yum -y install docker-io

2) Debian/Ubuntu

sudo apt-get update 
sudo apt-get install docker.io 
sudo sudo apt-get install lxc-docker

3) Download con Curl

sudo curl -sSL https://get.docker.io/ubuntu/ | sudo sh

* Linkiamo docker alla nostra bash

ln -sf /usr/bin/docker.io /usr/local/bin/docker
sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.io

* Rendiamo docker attivo all’avvio

update-rc.d docker.io defaults

P.S.: Ci sono molti contenitori già disponibili nella community docker, che possono essere trovati attraverso una ricerca. Ad esempio con questo comando cerchero’ la parola debian:

# docker search debian

NAME    DESCRIPTION      STARS     OFFICIAL   AUTOMATED
debian  Debianbaseimage  310         [OK]
google/debian            31                     [OK]

….e molte altre che potrete leggere dall’output completo.

** Installiamo e facciamo provisioning con una immagine Centos

# docker pull blalor/centos  # GitHub blalor/docker-centos-base  image

oppure per chi fosse interessato ad una immagine con gia inserito il tool Ansible (per il Configuration Management ed IT Automation) di cui ho da poco parlato, potra’ scegliere quest’altra immagine.

sudo docker pull ansible/centos7-ansible # GitHub Ansible on Centos7
Pulling repository ansible/centos7-ansible
fff2afd18a57: Download complete

Avviamo un container docker

Attiveremo ora un contenitore centos-base con una shell bash, utilizzando il comando run. Docker eseguira’ questo comando in un nuovo contenitore, -i attribuisce stdin e stdout, -t assegna un terminale.

docker run -i -t centos /bin/bash

Questo è tutto! Adesso stai usando una shell bash all’interno di un contenitore centos.
Per scollegarsi dalla shell la sequenza di escape e’ : Ctrl-p + Ctrl-q.

Diamo un’occhiata ai processi attivi tramite :

# docker ps -a
CONTAINER   ID IMAGE          COMMAND     CREATED
fff2afd18a57     blalor/centos     /bin/bash         About an hour ago

Il Dockerfile
Per automatizzare la procedura di creazione e modifica di un container docker, possiamo utilizzare il Dockerfile, che è una delle parti principali di Docker, infatti attraverso il Dockerfile è possibile non solo fare il deploy istantaneo automatizzato di più istanze e più container, ma è anche possibile eseguire il provisioning di queste istanze, automatizzando task di gestione del sistema, installazione del software e molto altro.

Nel prossimo articolo vedremo un esempio utile, utilizzando ad esempio un’applicazione leggera, che puo’ lavorare molto bene in un contenitore, come NGINX, il noto server web/cached per la gestione di siti web/proxy ad alto carico.

#DockerContainerAvviato