0
Lug 17 2016

Firejail

Una delle grandissime caratteristiche del software libero è che i rischi per sicurezza e privacy sono esposti agli occhi di tutti.

Quindi personalmente mi fido molto del software proveniente dal repo main di Debian, invece non mi fido di software proprietari di terze parti, per esempio di Spotify.

Avevo già cercato di mettergli una sandbox attraverso i container, però non è una soluzione pratica per questo genere di problema: si perde l’integrazione con l’ambiente desktop (notifiche, tasti multimediali…) e la soluzione è parecchio pesante, infatti serve che ci siano comunque tutte le dipendenze in un piccolo sistema operativo.

Recentemente invece ho sentito parlare di firejail, un programma che permette di isolare dei programmi mediante alcune funzionalità del kernel Linux, come i namespace.

Per ogni applicazione che si vuol far girare ha bisogno di un profilo, in cui si fa una whitelist e una blacklist di file e altre risorse cui essa può o non può accedere. È addirittura capace di bloccare le richieste a programmi come su e sudo.

È veramente rassicurante vedere che di default blocca subito l’accesso completo a file critici per la sicurezza come la cartella .ssh o ai… [Leggi il resto...]

0
Nov 17 2014

Python SSH Tunnel Server

SSH tunnels are great!

They allow to bypass firewalls and NAT problems, and you can use as unprivileged user, since you don’t have to install virtual network devices such as TUN or TAP.

Another good reason to chose SSH is that it is a standard protocol, so there are many implementations: OpenSSH on most Unices, PuTTY on Windows and cross platform libraries (Java, Python…).

However there is a great disadvantage: the SSH server. If you have a server you probably already use SSH, therefore you don’t want to share your custom port and grant access to your server, or create accounts to allow it.

A solution could be creating a chroot or something like that, but I wasn’t really confident in it, therefore I looked for an alternative SSH server, and I’ve come up with this library: TunnelServer.

Python already has a brilliant SSH library: Paramiko. It’s very transparent: it manages the packages for you, but you are the one who should manage the rest (login check, shell comunication, PTY allocation…, socket-ssh channel synchronization). That’s great, but sometimes unhandy, so I’ve written this class, which is a middleware: the class user still has to check login, but you don’t have to create… [Leggi il resto...]

0
Set 06 2014

Django

Ultimamente sto valutando i problemi di PHP, il linguaggio che ho usato più di tutti assolutamente negli ultimi 7 anni (o più).

PHP è un linguaggio in continua evoluzione: ho cominciato con PHP 4.4, da allora ci sono stati parecchi cambiamenti, per farlo diventare un linguaggio più orientato agli oggetti, tuttavia rimangono certi misteri come molti overhead aggiunti, sembra per niente, certe modalità di interpretazione tutte sue (vedasi operatore ternario).

Un altro buonissimo linguaggio è Python: è sempre libero e molto potente. Inoltre negli ultimi anni il suo uso per il web si è esteso parecchio.

Un nome associato a Python per il web è proprio Django, un framework molto interessante e utilizzato anche da Instagram.

L’ho sperimentato un po’, seguendo anche il tutorial sulla prima applicazione (un sondaggio) e ne sono rimasto davvero impressionato: è molto semplice e veloce da utilizzare. Bastano pochi secondi per poter creare un progetto e cominciare subito a lavorare.

Avevo utilizzato ancora un framework in PHP (CakePHP, se non sbaglio), ma non mi ero trovato benissimo.

La caratteristica da cui sono rimasto più impressionato è la gestione dei dati: non serve conoscere SQL, il framework crea automaticamente le tabelle e le query in base alle classi e ai metodi.

Ciò rende più facile anche l’utilizzo di una shell Python, che il framework prepara con tutte le impostazioni pronte e l’amministrazione.

Inoltre il Python mi ispira una grande versatilità: potrebbe essermi utile un processo diverso dal server web per elaborare dei dati, nonché l’integrazione con altri software, e con Django tutto ciò sembra parecchio semplice, in quanto fortemente modulare.

Non escludo di portare questo sito su Django, anzi, sarebbe parecchio interessante. Tra l’altro il VPS Classic 1 e l’hosting base di OVH hanno lo stesso prezzo, per cui sono ancora più allettato ;-) .

0
Ago 20 2014

Bridge, OpenVPN e DHCP

OpenVPN è un’ottima soluzione per creare una VPN, ovvero una Virtual Private Network.

Volevo utilizzare questo software per permettermi di accedere alla rete di casa quando sono via, quindi ho scelto l’approccio bridge, quindi con interfaccia tap.

Di suo OpenVPN non è così Plug&Play, bisogna lavorare un po’ sui file di configurazione e con un’utility chiamata easy-rsa per creare un po’ di chiavi e certificati per crittografare il traffico, cosa di cui non tratterò, perché ci sono siti molto più dettagliati.

Con IPv4 è molto comodo usare DHCP per la configurazione automatica dell’interfaccia di rete, anche quella virtuale. OpenVPN lo sa, infatti implementa un server DHCP.

Per la modalità routed è abbastanza sensato usarlo, ma va utilizzato per forza anche per la modalità bridged, indicando un range di IP che può utilizzare.

Io tuttavia pensavo che sarebbe bello poter usare il server DHCP del resto della LAN.

Ero sicuro fosse possibile, perché mi era già capitato di farlo, tuttavia l’avevo fatto con Windows ed era andato tutto tranquillamente.

Anche su Linux (client) riuscivo a farlo andare, ma solo manualmente con la CLI di OpenVPN e dhclient tap0, mentre avevo alcuni… [Leggi il resto...]

0
Lug 15 2014

Font e Debian, ancora una volta

Introduzione

Come al solito o ho problemi, o me li creo :| .

I problemi riguardavano dell’hardware del mio notebook, così ho voluto provare se c’erano gli stessi problemi con una live di Ubuntu. Oltre a non averli risolti, ho avuto ancora una volta la dimostrazione di quanto la configurazione di default dei font di Debian sia scadente.

Ubuntu, essendo una figlia di Debian, fino a qualche tempo fa ha sofferto dei medesimi problemi, finché non li ha risolti creando una famiglia di font, che a me non piacciono più di tanto, ma soprattutto includendo una configurazione di Fontconfig (il gestore dei font di molte distribuzioni Linux, in poche parole) che abilita certe funzionalità avanzate.

Autoalias, hint, etc…

Questa è la parte che fa tutta la magia, ovvero il motivo per cui la stessa famiglia di caratteri è resa in modo molto diverso dalle due distribuzioni.

In realtà è anche la parte più teorica, perciò io mi sono affidato semplicemente alla configurazione di Ubuntu, rimuovendo le alternative per i font e usando invece le mie preferenze.

Con precisione viene abilitato l’antialias, l’hinting slight, disabilita l’autohint, il subpixel rgb, imposta il filtro LCD di default e… [Leggi il resto...]