Linuxcon Europe – 2014

LinuxCon EuropeLinuxCon Europe – Linux Foundation

La Linux Foundation, l’organizzazione non-profit che sostiene la crescita di Linux e dello sviluppo collaborativo, ha annunciato i relatori della LinuxCon + CloudOpen + Embedded Linux Conference Europe, che si terrà dal 13 al 15 ottobre presso il Centro Congressi di Düsseldorf.

LinuxCon Europe è il luogo in cui apprendere dai migliori e più intelligenti, grazie agli interventi dei più importanti utilizzatori, sviluppatori e project leader della comunità Linux.

Non esiste un altro evento in Europa che permetta a sviluppatori, amministratori di sistemi, architetti e talenti tecnici di qualsiasi tipo e livello di riunirsi sotto un unico tetto per imparare, collaborare e risolvere problemi allo scopo di fare avanzare ulteriormente la piattaforma Linux.

LinuxCon prevede oltre 100 sessioni, con novità sugli ultimi aggiornamenti del kernel, sulle tecnologie e interfacce di storage, sulla sicurezza e l’Internet of Things, nonché interventi sulle best practice e la collaborazione open source.

I relatori della conferenza LinuxCon + CloudOpen + ELC Europe di quest’anno illustreranno i passi in avanti compiuti da Linux e dall’open cloud, nonché il modo in cui i metodi e i principi di Linux e dell’open source si stiano diffondendo in altri settori della società, tra cui la vendita al dettaglio e la sanità.

Tra i relatori confermati:

Jono Bacon, Senior Director of Community di XPRIZE, che nel suo intervento “Building Exponential Communities” parlerà di come sfruttare al meglio il lavoro in un ambiente comunitario

Paul Biondich, fondatore e presidente di OpenMRS, che parlerà di come le comunità open source stiano aiutando a migliorare la salute dei più poveri in tutto il mondo

Joanna Rutkowska, fondatrice e CEO di Invisible Things Lab, che parlerà di Qube OS e di come esso rappresenti un approccio pratico alla sicurezza dei sistemi client

Chris Schlaeger, Direttore Generale dell’Amazon Development Center, che farà una presentazione sugli elementi fondamentali degli Amazon Web Services

Inoltre, l’attesissima presentazione del Linux Kernel Panel vedrà come protagonista Linus Torvalds, creatore e membro della Linux Foundation, insieme ad altri importanti sviluppatori e addetti alla manutenzione del kernel, che parleranno dello stato del kernel Linux, nonché delle attività future e in corso.

Per iscriversi all’evento bastera’ seguire questo link : LinuxConEurope.

Piu’ veloci tramite la gestione della RAM

RAM vs SWAPRAM  vs  SWAP 

La maggior parte dei moderni sistemi operativi sono in grado di utilizzare una partizione, nota come swap o file di paging, per estendere la quantità di RAM disponibile scrivendo alcuni dati sul disco rigido. Con il termine swap si intende, l’estensione della capacità della memoria volatile complessiva del computer, oltre il limite imposto dalla quantità di RAM installata, attraverso l’utilizzo di uno spazio sul disco fisso.

Se il vostro computer dispone di 2 GB di RAM o più, difficilmente, nella maggior parte dei casi, avrete bisogno di utilizzare l’area di swap. La RAM infatti è molto più veloce di un disco rigido ed è conveniente lasciare che la RAM gestisca la maggior parte dei processi. La tendenza a ricorrere all’area di swap è chiamata swappiness. Quest’ultima accetta valori numerici interi da 0 a 100: assegnandogli 0 linux utilizzerà lo swap solo quando la ram sarà finita, per evitare che il sistema si blocchi; assegnandogli 100 invece utilizzerà praticamente sempre lo swap. In genere, su Ubuntu (e OS derivati), la priorità è a 60: questo significa che lo swap verrà usato quando la ram sarà piena il 40%. Se avete abbastanza ram, potete abbassare la priorità dello swap in modo che venga usato solo quando la ram occupata è al 90%, ma anche all’ 80% se preferite. Per ridurre lo swappiness in modo tale da forzare l’utilizzo dell RAM del vostro sistema possiamo digitare da terminale il seguente comando:

sudo sysctl -w vm.swappiness=60

Ora quello che possiamo fare per lavorare sulla gestione della RAM da parte del kernel e’ di “abbassare” questo valore, quindi fate coma al solito una copia di backup del file, prima di effettuare le modifiche, e cerchiamo di fare alcuni test per vedere quale valore meglio si adatta al vostro PC ed alla vostra RAM.

Le modifiche effettuate da questo comando però resteranno attive solo per la sessione in corso e non al successivo riavvio del sistema. Se invece, vogliamo mantenere le modifiche in maniera permanente bastera’ editare il file sysctl.conf:

sudo gedit /etc/sysctl.conf

Inserire il valore vm.swappiness=10 al termine del file e salvarlo;a questo punto potete tenere sotto controllo le modifiche effettuate ed i relativi miglioramenti tramite l’utilizzo di un comodo tool qual’e’ htop .

Ma, nel caso in cui  si doveste necessariamente dover creare un file per aumentare lo swap allora eseguite questa procedura:

dd if=/dev/zero of=/media/swapfile bs=1M count=1024
mkswap /media/swapfile
swapon /media/swapfile
cat /proc/swaps
nano /etc/fstab
/media/swapfile swap swap defaults 0 0

 

Vedi anche (proteggersi da scansioni ed intrusi)

Proteggersi da scansioni ed intrusioni

SysctlSysctl

Molte volte si pensa che per poter difendere il nostro amato PC da occhi indiscreti ci voglia chissa’ quale software sofisticato , oppure una decennale esperienza nella scrittura di regole con iptables ; certo tutto questo aiuta comunque, ma e’ anche vero che nella maggior parte dei casi il nostro PC non e’ poi cosi’ invitante e non contiene nessun vero segreto che valga la pena, per un hacker ( o x meglio dire chracker ) di perderci del tempo. Quindi molte volte alziamo fortificazioni esagerate, oltre il nostro vero sapere e controllo, senza avere un buon motivo. Si potrebbe invece iniziare a prendere dimestichezza con tutta quella serie di tools che Linux fornisce di base per cominciare a restringere le possibilita’ di accesso agli estranei ed ai curiosi.

Oggi inizieremo da sysctl ossia ” la gestione dei parametri del kernel  ”

Il comando sysctl viene usato per la personalizzazione dei parametri in run-time del kernel che si trovano in /proc/sys.
Per avere uno sguardo dell’output del comando basterà digitare da root:

sysctl -a

Le categorie

                 debug
                 dev
                 fs
                 kernel
                 net
                 vm

Significato
parametri per il debug.
parametri dei dispositivi.
parametri dei filesystem.
parametri generici del kernel.
parametri della rete.
parametri della memoria virtuale.

Praticamente possiamo modificare molti valori riguardanti il sistema,la rete,ecc.

Possiamo cambiare valore ai vari parametri in base alle nostre esigenze, facciamo un esempio.
Vogliamo cambiare valore all’ip forward:

sysctl -a | grep ip_forward

@lorenzo:/etc# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 0

Come vediamo il valore è a 0 e noi lo vogliamo mettere a 1:

sysctl -w net.ipv4.ip_forward=”1″

Come possiamo vedere ha preso il valore 1:

@lorenzo:/etc# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 0

Ovviamente questa modifica è temporanea infatti dopo un riavvio il valore torna a 0, ma possiamo renderla definitiva andato a editare il file /etc/sysctl.conf (facendo sempre prima un bel backup) mettendo 1 alla voce net.ipv4.ip_forward.

Una volta scritta la regola nel file ed usciti dalla modalita’ scrittura dovremo far rileggere la configurazione dei parametri di questo file tramite il seguente comando:

sysctl -p

Vediamo ora alcuni parametri e scopriamo a cosa servono :

net.ipv4.tcp_syncookies:  Quando abilitato, protegge dagli attacchi SYN FLOOD

net.ipv4.icmp_echo_ignore_broadcasts: Quando abilitato, ignora tutte le richieste ICMP ECHO e TIMESTAMP dirette ad indirizzi broadcast e multi cast proteggendo il server da attacchi SMURF.

net.ipv4.icmp_ignore_bogus_error_responses: Quando abilitato, protegge da errori ICMP maligni

net.ipv4.tcp_keepalive_time: Definisce ogni quanti secondi inviare al client con una connessione keepalive aperta un pacchetto in modo tale da mantenerla aperta.

L’abilitazione dei seguenti paramentri permette di inoltrare il traffico di rete da un’interfaccia ad un’altra agendo come un router:

net.ipv4.ip_forward
net.ipv4.conf.all.send_redirects
net.ipv4.conf.default.send_redirects

net.ipv4.tcp_max_syn_backlog=512   Quando la coda dei segmenti SYN provenienti da un certo host supera il numero stabilito in questo parametro il kernel invece di tenere i dati in arrivo nella coda dei pacchetti SYN in attesa di risposta, invierà un SYN+ACK di risposta.
Si svuota cosi la coda SYN, evitando che diventi troppo grande,

net.ipv4.icmp_echo_ignore_broadcasts = 1  Il kernel ignorerà i ping destinati all’indirizzo di broadcast della rete. Questo può evitare diversi tipi di attacchi DOS.

net.ipv4.ip_conntrack_max=15000  Viene impostato il numero massimo di connessioni che il sistema può gestire. E’ bene dimensionare tale numero in base alle risorse del sistema, per evitare in ogni momento il rischio che la RAM si esaurisca. *** ***Prevenzione attacchi DOS.

net.ipv4.ipfrag_high_tresh=131072

net.ipv4.ipfrag_low_tresh=102400

Queste due opzioni indicano la quantità di RAM massima e minima che deve essere usata nel momento in cui i segmenti TCP vengono riassemblati, per non esaurire la RAM.  ***Prevenzione attacchi DOS.

net.ipv4.ipfrag_time=20 Quest’opzione indica in secondi il tempo che i segmenti TCP devono essere tenuti in memoria

net.ipv4.conf.all.rp_filter=1 Quest’opzione è utile quando un pacchetto arriva in ingresso su un’interfaccia di rete diversa da quella che ci si aspetterebbe secondo le tabelle di routing.  ***Protezione contro attacchi di Spoofing

net.ipv4.tcp_mem = 12288, 16384, 24576
Queste impostazioni istruiscono lo stack TCP su come compostarsi nei riguardi dell’uso della memoria. Indicano al kernel qual’e’ la soglia al di sopra della quale debba iniziare un uso più attento della memoria. Il primo attributo indica il valore per il quale il kernel non si deve preoccupare dell’utilizzo della memoria. Il secondo attributo invece indica la valore per il quale il kernel deve iniziare a forzare la diminuzione dell’uso della memoria. Questo stato si chiama memory pressure mode.
L’ultimo valore indica il valore per il quale il kernel non può piu assegnare pagine di memoria finchè non torna sotto la soglia.

Per l’architettura x86 ad esempio le pagine di memoria sono grandi 4096 byte.
E’ bene dimensionare la configurazione di questa variabile in base alla RAM disponibile sulla propria macchina, per evitare l’esaurimento delle risorse.

Nel prossimo articolo vedremo altri tool ed altri sistemi di protezione integrati , bye !!

LXC Linux Containers

LXC - Linux Container

LXC – Linux Container

LXC è una nuova tecnologia per il controllo degli userspace attraverso i Linux Containers, un meccanismo leggerissimo e sicuro per avere un sistema virtuale.

LXC è un’evoluzione di chroot per implementare sistemi completi virtuali, con l’aggiunta di meccanismi di gestione avanzate delle risorse attraverso cgroup e che offre un avanzato grado di isolamento sia di sistema che di applicazione.

I containers Linux adottano un approccio completamente diverso rispetto alle tecnologie di virtualizzazione come Xen e KVM.

E’ possibile virtualizzare solamente macchine linux su linux. Le macchine virtualizzate condividono con il sistema ospitante il kernel con un sistema molto efficiente di isolamento e di sicurezza, e come si può ben capire molto molto efficiente in termini di risorse utilizzate. Con questo sistema si è in grado di supportare simultaneamente centinaia di sistemi emulati su un singolo server. Le macchine virtuali non avranno nessuna perdita di prestazioni rispetto alla macchina che ospita il tutto.

E non è tutto! Il bello sta nella facilità di installazione e di gestione delle macchine virtuali. Non necessita di nessuna modifica al kernel. E’ possibile comprimere una intera macchina virtuale e clonarla in pochi secondi, impressionante direi…

INSTALLAZIONE

Da terminale diventate Root e installate i pacchetti necessari.

sudo -s
apt-get install lxc debootstrap bridge-utils

# creiamo un container
root@lxc:~# lxc-create -n ubuntu01 -t ubuntu
Checking cache download in /var/cache/lxc/trusty/rootfs-i386 …
Installing packages in template: ssh,vim,language-pack-en,language-pack-it
Downloading ubuntu trusty minimal …
……..
………
dopo molte molte righe dovreste ottenere qualcosa come questo :
##
# The default user is ‘ubuntu’ with password ‘ubuntu’!
# Use the ‘sudo’ command to run tasks as root in the container.
##

ora possiamo verificare se e quali container vengono effettivamente visti dal sistema :

root@lxc:~# lxc-ls 
ubuntu01

adesso non rimane che far partire il nostro nuovo container tramite il comando :

root@lxc:~# lxc-start -n ubuntu01 -d

se non ci sono errori la shell non dovrebbe restituirvi altro che il cursore per andare avanti e poterci ora collegare alla console del container :

root@lxc:~# lxc-console -n ubuntu01

ora ci verra’ presentata una schermata di login in cui entrare con le credenziali sopra indicate in fase d’installazione :

Ubuntu 14.04.1 LTS ubuntu01 tty1

ubuntu01 login: ubuntu
Password: 
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-32-generic i686)
ubuntu@ubuntu01:~$

 …da qui in avanti le possibilita’ di utilizzo sono quasi infinite e dipendono dall’uso che meglio si adatta alle vostre esigenze, vi rimando quindi alle guide ufficiali del progetto:
lxc_container