mercoledì 18 febbraio 2015

And Now for Something Completely Different

Caserma dei pompieri 
Meccanici di auto
Batman e Joker

Capitan America

Star Wars (Yoda sulla sinistra)




martedì 17 febbraio 2015

RSync Linux to Mac

Dovendo scambiare qualche tera di dati tra una macchina Linux ed un Mac Os X Server 10.9 ho provato a lanciare un rsync al posto di un piu' comune scp

Il primo problema individuato e' stato che su Linux era installata una versione 3.1.1 di rsync mentre su Mac era presenta una vetusta 2.6.9 (rilasciata nel 2006!!!). Cioe' creava conflitto nella trasmissione dei dati

Grazie al progetto Rudix e' stato possibile installare la versione piu' recente e rendere compatibili nel numero di versione la parte Linux e Mac

Rilanciato lo scambio dati, questo e' iniziato ma non riusciva a copiare alcuni file perche' la codifica dei caratteri del nome file era in UTF-8 multibyte (caratteri speciali in particolar modo lettere accentate)

Uno dei suggerimenti trovati su Internet era quello di definire lo switch

--iconv=utf8,latin1

ma all'atto pratico non ha funzionato (alcuni utenti riportano che sia un problema specifico dello scambio da Linux a Mac

Ha invece avuto successo effettuare prima una conversione dei nomi prima di rsync con il comando

convmv -f latin1 -t utf8  --notest file_name

(l'ultimo switch e' quello che rende operativo il cambio di codifica, senza questo viene solo effettuata una simulazione)

lunedì 16 febbraio 2015

Arduino YUN e Internet Dongle

Nel caso di non disporre di una connessione via cavo o via WiFi, Arduino YUN puo' comunque trasmettere i dati connettendo un internet dongle (nel caso specifico un Hauwei E172 targato Vodafone, anno 2008)



La configurazione e' piuttosto semplice perche' puo' essere effettuata mediante la pagina di amministrazione web

Per fare cio' si devono pero' installare i seguenti pacchetti
opkg install luci-proto-3g (per la parte web)
opkg install kmod-usb-serial-option kmod-usb-serial-wwan luci-proto-3g usb-modeswitch-data usb-
modeswitch (per la gestione dell'harware)

A questo punto si va in Luci Menu e si crea una nuova interfaccia



Si configura la porta (per me /dev/ttyUSB0 visibile da logread) e le impostazioni di rete



e tornando indiestro si attiva l'interfaccia di rete



GNUPG

Per inviare mail criptate end-to-end oppure per siglare una mail in modo che sia impossibile modificarla la soluzione piu' semplice e' quella di usare la segnatura GPG (il corrispondente open della PGP)

la procedura per creare le chiavi su Linux da linea di comando e' la seguente. Conviene utilizzare la chiave a 4096 bit RSA/DSA

luca@debian:~$ gpg --gen-key
gpg (GnuPG) 1.4.12; Copyright (C) 2012 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

gpg: directory `/home/luca/.gnupg' created
gpg: creato un nuovo file di configurazione `/home/luca/.gnupg/gpg.conf'
gpg: ATTENZIONE: le opzioni in `/home/luca/.gnupg/gpg.conf' non sono ancora attive durante questa
esecuzione del programma
gpg: portachiavi `/home/luca/.gnupg/secring.gpg' creato
gpg: portachiavi `/home/luca/.gnupg/pubring.gpg' creato
Per favore scegli che tipo di chiave vuoi:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (firma solo)
   (4) RSA (firma solo)
Cosa scegli? 1

RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 4096

La dimensione richiesta della chiave è 4096 bit
Per favore specifica per quanto tempo la chiave sarà valida.
         0 = la chiave non scadrà
      <n>  = la chiave scadrà dopo n giorni
      <n>w = la chiave scadrà dopo n settimane
      <n>m = la chiave scadrà dopo n mesi
      <n>y = la chiave scadrà dopo n anni
Chiave valida per? (0)



You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
    "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

Nome e Cognome: Luca Innocenti
Indirizzo di Email: lucainnoc@gmail.com
Commento:
Hai selezionato questo User Id:
    "Luca Innocenti <lucainnoc@gmail.com>"

Modifica (N)ome, (C)ommento, (E)mail oppure (O)kay/(Q)uit?

gpg: /home/luca/.gnupg/trustdb.gpg: creato il trustdb
gpg: key 48CFC879 marked as ultimately trusted
chiavi pubbliche e segrete create e firmate.

gpg: controllo il trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
pub   4096R/48CFC879 2015-02-13
      Key fingerprint = E656 AD90 9447 4312 9C70  1773 C490 96A0 48CF C879
uid                  Luca Innocenti <lucainnoc@gmail.com>
sub   4096R/D7979695 2015-02-13
-----------------------------------------------------------------------

KeyID = 48CFC879
Key fingerprint = E656 AD90 9447 4312 9C70  1773 C490 96A0 48CF C879

 ----------

A questo punto sono state create la chiave privata (da tenere riservata) e quella pubblica da distribuire agli altri per poterci inviare messaggi codificati. Evidenziate in giallo i codici delle chiavi
Si puo' verificare il contenuto del portachiavi GPG mediante

luca@debian:~$ gpg --list-keys
/home/luca/.gnupg/pubring.gpg
-----------------------------
pub   4096R/48CFC879 2015-02-13
uid                  Luca Innocenti <lucainnoc@gmail.com>
sub   4096R/D7979695 2015-02-13
-------------------------------------------------------------

Per distribuire la chiave pubblica si puo' inviare il file esportato
gpg -armor --output pubkey.txt --export 48CFC879

oppure si puo' inviare la chiave ai server pubblici in cui sono salvate le rubriche delle chiavi (chi vorra' inviarci una mail criptata puo' cercare le nostre credenziali su questi server)

 gpg --send-keys --keyserver hkp://subkeys.pgp.net 48CFC879




gpg --import keyserver2.pgp.comGlobalDirectoryKey.asc
gpg: key CA57AD7C: public key "PGP Global Directory Verification Key" imported
gpg: Numero totale esaminato: 1
gpg:              importate: 1  (RSA: 1)
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u

Per effettuare il backup e copiare le chiavi si puo' seguire

luca@debian:~/Scaricati$ gpg -ao backup_pub.key --export 48CFC879
luca@debian:~/Scaricati$ gpg -ao backup_priv.key --export-secret-keys D7979695

i file delle chiavi sono tutti contenuti nella propria home/.gnupg

/home/luca/.gnupg/pubring.gpg
-----------------------------
pub   4096R/48CFC879 2015-02-13
uid                  Luca Innocenti <lucainnoc@gmail.com>
sub   4096R/D7979695 2015-02-13

pub   2048R/CA57AD7C 2004-12-06
uid                  PGP Global Directory Verification Key
uid                  [jpeg image of size 3400]
uid                  DNR KS1 <do-not-reply@keyserver1.pgp.com>
uid                  DNR-KS2 <do-not-reply@keyserver2.pgp.com>



se si vuole seguire la via semplice invece si puo' usare l'estensione EnigmaMail per Thunderbird. Una volta installata mediante Strumenti/Componenti Aggiuntivi basta seguire i menu' di guida per creare le chiavi GPG e le impostazione di base di invio delle mail (vale per Mac, Windows e Linux)


Con questo sistema e' gestita in modo automatico la pubblicazione di chiavi sui server

Su Gmail esiste una estensione chiamata Mymail-Crypt che pero' mi ha dato problemi con le chiavi a 4096 bit (sembra che accetti solo le chiavi a 2048 bit)


mercoledì 11 febbraio 2015

JWPlayer

Tempo fa avevo provato JPlayer, un plugin JQuery per pubblicare video ed audio su web
Adesso e' il tempo di JWPlayer


l'uso e' intuitivo, basta solo indicare la posizione del file, una eventuale immagine di fermoimmagine
---------------------------------------------------------------------------
<script src="jwplayer.js" ></script>
<div id="myElement">Loading the player...</div>

<script type="text/javascript">
    jwplayer("myElement").setup({
        file: "blue_bossa.mp4",
        image: "vlcsnap.png",
width: 640,
        height: 360
    });
</script>
---------------------------------------------------------------------------
il progetto completo puo' essere scaricato da 
https://drive.google.com/file/d/0B_BeE7yoBqdHYWRpMXN1c1ItaTA/view?usp=sharing
(video ripreso da http://blog.naver.com/silverstarca)

AGGIORNAMENTO
Per poter inserire il player sul proprio server Web e' necessario inserire la chiave che si ottiene registrandosi sul sito di jwplayer

martedì 10 febbraio 2015

Rsync senza password per backup su macchine differenti

Supponiamo di avere due macchine, una di produzione e l'altra di backup, che devono condividere gli stessi dati o per lo meno la seconda macchina deve funzionare come backup del server principale

Il metodo piu' semplice e' utilizzare il comando rsync con lo scambio delle chiavi in modo da non necessitare l'introduzione di una password (per semplicita' su entrambe le macchine ci sara' lo stesso utente)

Si testa prima la connessione copiando i dati dal server principale (192.168.0.1) a quello di backup 192.168.0.2 (ci si mette quindi nella shell del server principale)

rsync -avz -e ssh /home/luca/ luca@192.168.0.2:/home/luca/backup

in questo modo i file della home dell'utente luca sul server sono copiati sulla macchina remota. Si deve inserire manualmente la password
Per evitarlo, stando nella shell del server principale, si creano le chiavi ssh con 

ssh-keygen

(si puo' digitare enter alla richiesta della passphrase)
si copiano quindi le chiavi sul server di backup

ssh-copy-id -i /home/luca/.ssh/id_rsa.pub 192.168.0.2

se ha funzionato possiamo loggarci in ssh come luca da 192.168.0.1 a 192.168.0.2 senza digitare password

ssh 192.168.0.2

terminato cio' se digitiamo di nuovo il comando
rsync -avz -e ssh /home/luca/ luca@192.168.0.2:/home/luca/backup

non verra' richiesta la password, cosa particolarmente utile se si mette la procedura in cron



venerdì 6 febbraio 2015

Port Knocking

Stanco di aver sempre qualcuno che prova ad entrare sul servizio SSH del server mi sono deciso ad implementare il Port Knocking. In estrema sintesi con questo sistema e' possibile modificare le regole del firewall dall'esterno in modo da esporre un servizio che normalmente e' stato mascherato dal firewall e non ammette connessioni. Il trucco si basa sull'invio di una sequenza di pacchetti codificati che vengono letti da un demone sulla macchina che agisce poi in base a regole predefinite

Partiamo da un server in cui siano attive regole di firewall per filtrare tutto il traffico tranne quello entrante su porta 80 ma che comunque abbia attivo ma filtrato un servizio SSH. L'idea e' quello di usare Port Kocking per connettersi dall'esterno su SSH

con questi comandi viene ammesso tutto il traffico su localhost e viene droppato tutto il traffico dall'esterno ad eccezione di quello su porta 80

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -j DROP



a questo punto si puo' installare il demone per il Port Knocking con

apt-get install knockd

una volta installato il demone non parte in autoesecuzione. Per prima cosa si deve configurare il comportamento dal file /etc/knockd.conf
I numeri della sequenza dovranno esssere specifici per la macchina in uso in quanto corrispondono alla chiave per attivare/disattivare il servizio (non e' necessario che la chiave per disattivare il servizio sia la medesima ma invertita  di quella per attivarlo). Ogni numero corrisponde ad una richiesta su una porta differente (attenzione, se c'e' a monte un firewall che prefiltra il traffico il trucco del port knocking potrebbe non funzionare)

------------------------------------------------------------------------
[options] 
 UseSyslog 
 [openSSH] 
 sequence = 1234,5678,9101 
 seq_timeout = 5 
 command = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT 
 tcpflags = syn 

 [closeSSH] 
 sequence = 1019,8765,4321 
seq_timeout = 5
command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT 
 tcpflags = syn
------------------------------------------------------------------------
come si vede la regola di iptables semplicemente apre la connessione sulla porta 22 per l'ip da cui e' stata riconosciuta la giusta sequenza di bussate. 

Per mandare il servizio in esecuzione automatica si deve settare ad 1 START_KNOCKD in /etc/default/knockd (oppure si avvia a mano il servizio con service knockd start)

fatto partire il servizio si puo' sperimentare con il client

Il comando apt-get install knockd installa oltre al server anche il client per cui si puo' ripetere l'installazione sulla macchina da cui ci si vuole connettere

il comando e' il seguente. Vengono concantenati insieme il  knock porting e l'avvio della sessione SSH

knock ip_server 1234 5678 9101 && ssh luca@ip_server


mercoledì 28 gennaio 2015

Installare client OpenVPN (Windows,Linux,Mac,IOS)

In questo post viene indicato come configurare i client OpenVPN su varia piattaforme
Si parte avendo disponibili i file client.crt, client.key, ca.crt e config.ovpn tutti nella stessa directory

Sui dispositivi desktop sono necessari i privilegi di amministratore perche' di fatto viene creata una interfaccia di rete virtuale

Linux

da linea di comando

openvpn --config file.ovpn

in Ubuntu c'e' anche una procedura guidata visuale dal menu delle connessioni di rete /VPN

MAC (Tunnelblick)

Si clicca sul file ovpn



Viene richiesto di aggiungere la chiave a Tunnelblick (richiesta anche la password)
Per connettersi basta cliccare sull'icona di Tunnelblick e selezionare la VPN desiderata



IOS (Client OpenVPN)
Tramite Itunes si seleziona il dispositivo, poi il tab App, si scorre verso il basso in Condivisione File e si aggiungono tutti e quattro i file


sul telefono verra' riconosciuta la nuova configurazione, Si clicca il pulsante + verde per aggiungerla




A questo punto con il pulsante a slitta si lancia la connessione


Windows (Client OpenVPN)
Si scarica il client da questo link e si copiano i quattro file  in C:\Programmi\OpenVPN\config

Si apre quindi OpenVPN GUI 
Appare un'icona nella traybar. Si clicca destro e connetti




martedì 27 gennaio 2015

VPN SSL con Zywall USG 20W

Lo Zywall USG 20 W e' un router wifi con alcune funzionalita' avanzate con la possibilita' di creare un server VPN su SSL o IPSEC dal costo non proprio trascurabile (e' circa sui 200 euro)

In questo post viene descritto come configurare la VPN su SSL su client Mac e Windows (ho provato con Linux ma senza risultati, non ho provato con la configurazione IPSEC...e' una macchina in produzione e dislocata in remoto su cui non e' possibile giocare piu' di tanto)

Ci si logga dalla finestra di amministrazione


Andando sul menu' di sinistra si clicca su Configuratione (i due ingranaggi gialli) e si sceglie VPN/SSL

Si crea un nuovo Object/User-Group e si inseriscono le credenziali di accesso

Si puo' quindi creare un oggetto Application ovvero il servizio a cui l'utente si logga (tipicamente un desktop remoto)
Si aggiunge quindi l'utente alla lista degli utenti che hanno accesso (Selected Users)


Si modifica quindi l'SSL_POOL ovvero il set di indirizzi della VPN

a questo punto e' finita la configurazione server e si passa al lato client

Per Windows la cosa e' banale in quanto da dentro Internet Explorer ci si collega all'indirizzo pubblico del router, si inseriscono le credenziali e si preme il pulsante SSL VPN. In automatico e' mandato in esecuzione un programma definito SecuExtender che permette di accedere al rete interna

Su Mac non esiste questo automatismo ed e' necessario scaricare il file da questo link ed avviarlo a mano

lunedì 26 gennaio 2015

VPN con WRT54GL e TomatoUSB


Perche' comprarsi un router wireless Linksys WRT54GL del 2005?
Perche' oramai con un costo moderato (inferiore ai 50 euro) si ottiene un hardware di tutto rispetto e un supporto hardware notevole visto il successo all'uscita (usa un firmware basato su Linux ed e' stato subito oggetto di vari hack per estenderne le possibilita' )


In questo senso esistono i progetti DD-WRT e Tomato che aggiungono funzionalita' di VPN
Visto che gli aggiornamenti di DD-WRT risalgono al 2009 mentre Tomato e' stato attivo fino almeno 2012 ho scelto di provare Tomato

La schermata di configurazione di WRT54GL con il firmware standard si trova all'indirizzo 192.168.1.1 (username: admin, password:admin)


Per aggiornare il firmware si scarica il file Tomato_1_28 decomprimendolo. Si va quindi in Administration/Firmware Upgrade e si effettua l'upload di WRT54G_WRT54GL.bin

Al riavvio la macchina riparte con il nuovo firmware


Con il firmware base non e' disponibile la funzionalita' OpenVPN. Si deve scaricare una versione modificata di Tomato (detta TomatoUSB). Si effettua quindi l'upload del file tomato-NDUSB-1.28.8754-vpn3.6.bin, nuovo riavvio ed e' terminato il lavoro di cambio di firmware

Si configura la porta WAN e il server del tempo (OpenVPN rifiuta i certificati se non e' impostato l'orario in modo corretto). Per poter vedere l'interfaccia di amministrazione dalla WAN deve essere flaggata l'apposita opzione (scelta sconsigliata ma in emergenza puo' essere utile)

a questo punto si entra in VPN Tunneling e si fa lo start del servizio



si arriva quindi alla configurazione dei certificati
Questa fase e' simile per Mac, Windows e Linux. In questo caso viene mostrato il caso Mac mediante l'uso del client TunnelBlick

Il programma, una volta lanciato, mette un'icona nell'angolo vicino all'orologio
Si clicca Dettagli VPN/Utilita'/Apri easy-rsa nel terminale

Per creare i certificati si usa la seguente sequenza di comandi
$ source ./vars
$ ./clean-all
$ ./build-ca
$ ./build-key-server server
$ ./build-key client1
$ ./build-dh

su Yosemite e' necessario anche cambiare le impostazioni avanzate come nell'immagine

a questo punto si aprono i file con editor di testo e si copia il contenuto nella schermata dell'amministrazione web del routert

BoxFile
Certificate Authorityca.crt
Server Certificateserver.crt
Server Keyserver.key
Diffie Hellman parametersdh1024.pem




Di nuovo si avvia il servizio ed il risultato dovrebbe essere qualcosa di questo tipo


Finita la configurazione del server si passa al lato client

si copiano i file 
ca.crt 
client1.crt
client1.key

in una directory e di crea una file nome_vpn.ovpn e con un editor di testo si incolla questo testo
(modificare la parte evidenziata in giallo con l'ip del router vpn)

--------------------------------------------------
##############################################
# Sample client-side OpenVPN 2.0 config file #
# for connecting to multi-client server.     #
#                                            #
# This configuration can be used by multiple #
# clients, however each client should have   #
# its own cert and key files.                #
#                                            #
# On Windows, you might want to rename this  #
# file so it has a .ovpn extension           #
##############################################

# Specify that we are a client and that we
# will be pulling certain config file directives
# from the server.
client
ns-cert-type server

# Use the same setting as you are using on
# the server.
# On most systems, the VPN will not function
# unless you partially or fully disable
# the firewall for the TUN/TAP interface.
;dev tap
dev tun21

# Windows needs the TAP-Win32 adapter name
# from the Network Connections panel
# if you have more than one.  On XP SP2,
# you may need to disable the firewall
# for the TAP adapter.
;dev-node MyTap

# Are we connecting to a TCP or
# UDP server?  Use the same setting as
# on the server.
;proto tcp
proto udp

# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote xxxxxxxxx 1194

# Choose a random host from the remote
# list for load-balancing.  Otherwise
# try hosts in the order specified.
;remote-random

# Keep trying indefinitely to resolve the
# host name of the OpenVPN server.  Very useful
# on machines which are not permanently connected
# to the internet such as laptops.
resolv-retry infinite

# Most clients don't need to bind to
# a specific local port number.
nobind

# Downgrade privileges after initialization (non-Windows only)
;user nobody
;group nobody

persist-key
persist-tun
float

# If you are connecting through an
# HTTP proxy to reach the actual OpenVPN
# server, put the proxy server/IP and
# port number here.  See the man page
# if your proxy server requires
# authentication.
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]

# Wireless networks often produce a lot
# of duplicate packets.  Set this flag
# to silence duplicate packet warnings.
;mute-replay-warnings

# SSL/TLS parms.
# See the server config file for more
# description.  It's best to use
# a separate .crt/.key file pair
# for each client.  A single ca
# file can be used for all clients.
ca ca.crt
cert client1.crt
key client1.key

# Verify server certificate by checking
# that the certicate has the nsCertType
# field set to "server".  This is an
# important precaution to protect against
# a potential attack discussed here:
#  http://openvpn.net/howto.html#mitm
#
# To use this feature, you will need to generate
# your server certificates with the nsCertType
# field set to "server".  The build-key-server
# script in the easy-rsa folder will do this.
;ns-cert-type server

# If a tls-auth key is used on the server
# then every client must also have the key.
;tls-auth ta.key 1

# Select a cryptographic cipher.
# If the cipher option is used on the server
# then you must also specify it here.
;cipher x

# Enable compression on the VPN link.
# Don't enable this unless it is also
# enabled in the server config file.
comp-lzo

# Set log file verbosity.
verb 3

# Silence repeating messages
mute 20
--------------------------------------------------

doppio clic sul file ovpn e si aggiunge questa configurazione a TunnelBlick
per connettersi e' sufficiente andare sull'icona vicino all'orologio ed effettuare la connessione

Condensatore della lavatrice

Per l'angolo del fai da te come riparare il condensatore di una lavatrice




Un paio di giorni fa la lavatrice ha smesso di funzionare, o meglio l'acqua entrava nel cestello, il cestello tentava di girare ma faceva solo un piccolo angolo di rotazione (la centrifuga a vuoto funzionava a velocita' ridotta)

Il colpevole e' stato individuato individuato nel condensatore del motore elettrico (per capire a cosa serve il condensatore detto "di spunto" qui c'e' una chiara spiegazione). Questo e' il pezzo smontato


il costo e' di circa 8 euro e ve ne sono di tre capacita 12-14-16 microFarad. Ha 4 poli ma sono cortocicuitati a due a due (in alcuni modelli non e' possibile vedere come sono uniti insieme i poli perche' la plastica nasconde i contatti, meglio munirsi di tester)



Nel mio caso il condensatore era facilmente accessibile dall'alto. E' avvitato alla scocca mediante un dado che esce dalla scocca sul retro
15-20 minuti di lavoro


venerdì 23 gennaio 2015

VPN Host to Lan con Zeroshell e VirtualBox


In questo post viene mostrato come configurare una VPN Host to Lan mediante l'uso di Zeroshell (il  tutto virtualizzato per comodita' su VirtualBox)

Lo scenario e' il seguente:
1) un server su rete interna con indirizzi 10.0.0.x su cui gira un server SSH. Lo scopo e' di collegarsi via VPN a questo server (per la cronaca e' una installazione minimale di Debian)

2) una macchina router cui gira Zeroshell, una distribuzione firewall/router che ha integrata un server VPN basato su OpenVPN. Questa macchina ha due schede di rete: una WAN con indirizzo 150.217.xx.xx ed una scheda interna che collega la LAN 10.0.0.x

3) una macchina esterna, in particolare una Ubuntu, che deve accedere come client alla VPN




Per la virtualizzazione un paio di indicazioni:
1) Tutte le macchine virtuali devono avere le schede di rete virtuali in modalita' Bridge
2) La macchina Zeroshell deve avere due interfacce di rete in quanto lavora come router. Facendo le prove su un portatile ho montato una scheda di rete USB

Questa e' la configurazione degli indirizzi di rete. L'interfaccia VPN99 e' virtuale ed e' ovviamente quella della VPN



Si aggiunge un utente (username/password) che dovra' accedere alla VPN


si imposta poi la VPN (modalita' Host to Lan, primo tab). Da notare che e' stata reimpostata la porta di ascolto di default di OpenVPN (spostata su 8080/TCP). Il pool di indirizzi della VPN e' del tipo 192.168.250.x ma non interessa molto perche' saranno trasparenti. Da ricordarsi di spuntare NAT

A questo punto e' bene salvarsi il file del certificato del server (sara' poi installato sul client). Si deve entrare su Trusted CAs ed esportare il file TrustedCas.pem


Per avvisare Zeroshell come instradare verso la rete interna il traffico VPN si deve cliccare il pulsante Net nella schermata precedente e settare il pool di indirizzi della rete interna


La parte Zeroshell e' terminata, passiamo a configurare il client. Su Ubuntu e' particolarmente immediato. Dal menu della configurazione delle interfacce di rete si puo' impostare anche un nuovo client VPN. In questo caso si deve selezionare OpenVPN come tipologia di connessione
Si seleziona l'indirizzo WAN di Zeroshell e si inseriscono le credenziali dell'utente ed il certificato del server (TrustedCa.pem)


Si va quindi in configurazione avanzate e si modifica la porta di ascolto (8080) e si spunta la compressione LZO e TAP (questo e' importante, altrimenti la connessione va in TUN e ci si collega alla VPN ma non si arriva sulla rete interna)



a connessione avvenuta deve comparire l'interfaccia virtuale


a questo punto si si puo' collegare da qualunque rete alla rete interna sul server ssh (sempre che la rete da cui ci si connette non filtra la porta 8080 ma cio' e' improbabile perche' sulla stessa porta girano spesso servizi web)






venerdì 16 gennaio 2015

Stampante WiFi con Arduino YUN (USB over IP)


In questo post viene mostrato come convertire una economica stampante in una stampante WiFi mediante l'utilizzo di Arduino YUN.

Di fatto YUN ha un hardware troppo ridotto per portersi permettere l'installazione di un server CUPS ma si puo' utilizzare un software USB over IP per ottenere un risultato simile. In pratica il programma instrada tutto il traffico del protocollo USB incapsulandolo sulla rete WiFi ed un client sul portatile permette di recodificarlo eliminando di fatto il supporto fisico del cavo USB



Samsugn ML2160 modificata in modalita' WiFi


Per i puristi di Linux e dell'OpenSource esiste un progetto USB/IP che permette di fare quanto descritto ma si tratta di un progetto non mantenuto (gli ultimi aggiornamenti sono del 2011) e non ha client per Mac e Windows
Io ho usato invece VirtualHere che permette l'uso gratuito del programma collegando un solo dispositivo ed ha server compilati in modo statico per praticamente tutti i sistemi operativo (anche quelli embedded come Arduino) e client per Linux, Windows e Mac


Visto YUN ha un processore MIPS si deve scaricare e lanciare il programma server vhusbdmips
Sul client si deve scaricare il programma apposito e si clicca destro sul dispositivo (in questo caso la stampante) per collegare la porta usb virtuale (i driver della stampante devono essere installati sul client)

da qui in poi il portatile vedra' la stampante come fisicamente connessa alla porta USB

Lo stesso si puo' fare con qualsiasi dispositivo come una webcam usb (testato con VLC, unico problema non sono riuscito ad ottenere la massima risoluzione)



e si possono collegare anche dischi remoti (un po' come fosse Time Capsule del marchio della mela morsicata)


ATTENZIONE : in questo caso funzionano bene le chiavette USB ma non i dischi esterni. YUN non riesce ad alimentare correttamente i dischi esterni per limiti sulla tensione in uscita. Se il disco esterno non ha l'alimentazione separata dall'USB molto probabilmente non funzionera'










mercoledì 14 gennaio 2015

Tasto insert su Mac

Ultimamente uso spesso Mac come portatile anche se di fatto sono quasi sempre collegato in shell con qualche macchina Linux


Una delle cose piu' seccanti su Mac e' la mancanza del tasto INS ed usando Midnight Commander la cosa diventa pesante.
Frugando su Internet ho trovato che questo tasto su Os X e' sostituito dalla combinazione CTRL+T
(per quanto riguarda i tasti funzione F1..F10 si ottengono premendo la combinazione Fn+F1, per l'impostazione di default devono essere modificati i tasti F9 ed F10 che sono destinati ad Expose')

LLama3 Anita

A seguito di questo post ho provato a vedere ho provato a vedere cosa accadeva ad utilizzare un modello specifico per la lingua italiana in...