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 rende impossibile l’accesso alle cartelle dei processi che non appartengono all’utente attualmente utilizzato,
Il valore 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

Ansible per l’automazione IT ed il Configuration Management

Ansible e l’automazione IT

Ansible e l’automazione IT

Ansible e’ un tool di Configuration Management ed IT Automation che sta riscuotendo un notevole successo tra gli addetti ai lavori in virtu’ della sua immediatezza, della sua semplicita’ di utilizzo e del superamento delle limitazioni della tipica configurazione basata su “server & agent”.

Che cos’e’ Ansible

Ansible quindi e’ un tool di Configuration Management ed IT Automation che rientra nella sfera degli strumenti tipici del metodo DevOps.

DevOps e’ un movimento nato per abbattere il muro di gomma che nel corso degli anni si e’ innalzato tra Developer e Sysadmin. Per usare un’analogia, DevOps e’ una cultura che ha lo scopo di creare una pipeline (in pratica un ponte di comunicazione) tra sviluppatori ed amministratori di sistema.

L’obiettivo e’ uno solo: aumentare costantemente la soddisfazione del cliente producendo ed erogando software allo stato dell’arte con continue release correttive.

Per raggiungere un obiettivo cosi’ ambizioso e’ importante poter contare non solo sulle persone ma anche sugli strumenti. Cosi’ sono nati tool agili ed intuitivi che hanno lo scopo di automatizzare lo sviluppo, il testing e la configurazione di server ed applicazioni. Questa famiglia di tool per il Configuration Management comprende gia diversi nomi blasonati come ad esempio Puppet, Chef, Saltstack e CFEngine.

Configuration Management in breve

Il Configuration Management e’ un processo utilizzato per definire la configurazione delle applicazioni web e dei server in modo consistente, possibilmente sotto controllo di versione. Con il Configuration Management e’ possibile definire a priori come dovra’ essere configurato il server X o l’applicazione Y. Il tutto in linguaggio sorgente o sotto forma di meta-linguaggio.

I tool di Configuration Management leggono le configurazioni a partire da un file sorgente ed applicano le stesse su uno o piu’ server, in modo automatico e prevedibile.

Esempio:

inizio configurazione
1 assicurati che apache2 sia installato
2 assicurati che php5 sia installato
3 assicurati che mysql sia installato
fine configurazione

Un tool di Configuration Management puo’ leggere queste istruzioni ed applicarle su uno o piu’ server. In questo modo l’operatore puo’ replicare la stessa configurazione su decine di server oppure ricostruire la stessa in pochi secondi quando uno o piu’ server vengono messi fuori uso.

Ansible, un po’ di storia

Lanciato nel 2012, Ansible  nasce da un’idea di Michael de Haan, creatore tra l’altro di Cobbler. De Haan un bel giorno sente la necessita’ di scrivere un software che potesse semplificare all’ennesima potenza le attivita’ di Configuration Management ed Automazione IT.

Fino a quel momento il panorama del Configuration Management era dominato da Puppet e Chef (che comunque mantengono e sicuramente manterranno  anche in futuro quote di mercato molto vaste). Ma seppure ottimi, sia Puppet che Chef hanno alcuni punti deboli, che fanno storcere il naso ai Sysadmin piu’ esigenti:

* Puppet e Chef funzionano principalmente in modalita’ server – agent

* Chef richiede anche la conoscenza del linguaggio Ruby

Anche se non si tratta di limitazioni insormontabili ci sono comunque alcuni svantaggi in questo tipo di approccio.

Prima di tutto non sempre e’ possibile installare un agent sul server di destinazione, poiche’ un agent e’ comunque un piccolo software che rimane in esecuzione permanente su uno o piu’ server ed ha lo scopo di attendere comandi e configurazioni impartite dal server master.

Sia Chef che Puppet utilizzano questo approccio che spesso non e’ possibile mettere in pratica.

Pensiamo ad esempio ad ambienti server che per ragioni di conformita’ o sicurezza non possono ospitare agenti o software estranei oppure a quei server con un discreto numero di anni sulle spalle, dove l’installazione di una versione aggiornata di Ruby (richiesta, ad esempio, da Puppet) potrebbe causare effetti imprevedibili.

I vantaggi di Ansible

Perche’ dunque adottare Ansibile ?
Se sei un Sysadmin o un Developer potrai trarre sicuramente grande beneficio dall’uso di questo tool: con Ansible non e’ mai stato cosi’ semplice definire lo stato di un server e delle tue applicazioni web.
Con Ansible quindi il risparmio di tempo e di codice e’ notevole rispetto a Puppet o Chef.

Curva di apprendimento bassa

Dalla lettura della documentazione alla scrittura dei primi Playbooks il passo sara’ breve, ed in pochi minuti vi sara’ possibile iniziare a lavorare con Ansible senza dover penare con configurazioni di server Master e agenti vari.

Non sono richieste capacita’ di coding

Puppet e Chef nascono entrambi da un team di sviluppatori follemente innamorati di Ruby. Per la definizione dello stato dei server e delle configurazioni Puppet adotta un linguaggio simile al codice Ruby mentre per definire lo stato di un server con Chef e’ addirittura essenziale conoscere il linguaggio, invece Ansible supera completamente questa limitazione.

In Ansible ad esempio e’ possibile definire che il server X dovra’ contenere Apache con due righe:
es:

Install Httpd
yum: name=httpd state=latest

Come si puo’ notare, a differenza di Puppet, Chef e Saltstack, Ansible non ha bisogno di nessun agente per applicare le configurazioni su un server. Ansible utilizza di default il trasporto SSH: questo elimina la necessita’ di installare software estraneo sui nodi.

Modulare e Open Source

Ansible e’ composto da numerosi moduli. Per analogia i moduli di Ansible hanno la stessa funzione delle risorse in Puppet. Ogni modulo svolge delle funzioni ben precise e gestisce un singolo aspetto di ogni sistema. Questa architettura consente di espandere Ansible praticamente all’infinito, senza contare che i moduli possono essere scritti in qualsiasi linguaggio di programmazione. Inoltre Ansible e’ Open Source e la comunita’ continua a crescere rapidamente.

Ansible, i concetti chiave

Prima di terminare con questa introduzione su Ansible vediamo quali sono i concetti chiave ed i componenti che ruotano attorno a questo software.

Ansible: l’inventario

L’inventario e’ una lista di server sui quali Ansible applica, a comando, le configurazioni di sistema e le istruzioni di automazione. L’inventario di solito e’ contenuto all’interno del file /etc/ansible/hosts anche se e’ possibile specificare una posizione a piacere.

All’interno dell’inventario l’operatore puo’ specificare la lista dei server “bersaglio”. E’ chiaramente obbligatorio che ogni server abbia una corrispondenza DNS anche se e’ possibile specificare ogni server con il proprio indirizzo IP . Un esempio di inventario:

[webservers]
webserver1.example.com
webserver2.example.com

[dbservers]
dbserver1.example.com
dbserver2.example.com

Ansible ed i Tasks

In Ansible i Tasks sono dei “compiti” ovvero una serie di istruzioni che Ansible esegue in ordine di apparizione. Ogni istruzione contiene la definizione e/o la configurazione che dovra’ essere applicata ad ogni sistema.

Ansible e gli Handlers

Gli Handlers in Ansible sono delle istruzioni che vengono eseguite a seguito di una determinata azione. Ad esempio dopo aver installato httpd un operatore puo’ voler avviare Apache automaticamente. Un esempio di Handler che avvia Apache su CentOS:

name: start httpd
service  : name=httpd state=started enabled=yes

Gli Handlers si basano sul modulo service di Ansible (questo modulo viene utilizzato per gestire i servizi di sistema).

Ansible ed i Playbook

In Ansible i Playbook sono delle collezioni di Tasks. Ogni Playbook puo’ contenere un determinato numero di Tasks e di Handlers. I Playbook devono essere definiti in linguaggio YAML.


Ansible ed i Moduli

Ansible e’ composto da numerosi moduli. Esistono moduli per gestire i servizi di Cloud Computing (EC2 su AWS), Rackspace e Google Compute Engine, esistono moduli per installare pacchetti software su server Linux con apt e yum, moduli per gestire file di configurazione e database e molto altro ancora.

Per una lista completa dei moduli puoi consultare la documentazione ufficiale: Ansible Modules.

#AnsibleConfigurationManagement