lunedì 28 dicembre 2009

Frame buffer con Grub e Grub 2

Oggi trattiamo un aspetto puramente estetico, ovvero la risoluzione della console all'avvio della macchina.
Normalmente un sistema Debian, di default, viene installato e configurato per essere il più possibile compatibile con tutto l'hardware presente sul mercato, quindi la risoluzione della console viene impostata a valori molto bassi (640x480) per poter funzionare su qualunque monitor, ma questo fa sì che anche l'interfaccia testuale abbia un numero limitato di righe e colonne (80x24 se ricordo giusto).
A me questa risoluzione risulta troppo scarsa per poter lavorare adeguatamente, quindi voglio sempre aumentare la risoluzione aumentando di conseguenza il numero di righe e colonne di testo visualizzabili. Per far questo si deve modificare il file di configurazione di grub; questo file è diverso a seconda della versione di grub:
  • /boot/grub/menu.lst per grub 1 aggiungendo il parametro vga nelle opzioni di avvio del kernel (ricordatevi di modificare la linea corretta, ovvero non quella che riguarda il single-user mode);
  • /boot/grub/grub.cfg per grub 2 modificando il parametro gfxmode e gfxpayload.
In grub 1 le varie modalità video sono identificate da valori esadecimali (0x) in base alla propria scheda video; per conoscere le modalità disponibili ed i valori associati si utilizza il comando vbeprobe dalla modalità a linea di comando di grub (vi si entra premendo 'c' durante la visualizzazione del menù) e, una volta identificata la modalità desiderata, la si testa con vbetest. Se tutto viene visualizzato correttamente si può procedere con i calcoli necessari a ricavare il valore da associare al parametro vga.
Il valore da impostare al parametro vga da inserire come opzione alla stringa di avvio del kernel si ottiene partendo dal valore esadecimale di proprio interesse (ad esempio 0x144), a questo si aggiunge 0x200 (ottenendo 0x344, in decimale 836), il nuovo valore così ottenuto in genere è del tipo 0x3..; questo è il valore da assegnare al parametro vga specificandolo come vga=0x3.. oppure vga=8.. (valore decimale).
La nuova linea di avvio all'interno di grub sarà del tipo:
  • kernel /boot/vmlinuz-x.y.z root=/dev/hda1 ro quiet vga=0x344
Fate attenzione a modificare la linea corretta, ovvero non quella di failsafe o single user mode.
In grub 2 le impostazioni sono molto più semplici ed
i parametri sono in formato "uman readable", ovvero la stringa del valore e del tipo RisoluzioneOrizzontalexRisoluzioneVerticalexBitDiColore; i parametri coinvolti in questo caso sono due: gfxmode, che stabilisce la risoluzione durante la visualizzazione del menù di avivo, e gfxpayload, che tsabilisce la risoluzione da visualizzare in modalità testuale. Ad esempio, per avere tutte le risoluzioni a 1024x768 con una profondità di colore a 32 bit si dovranno aggiungere le seguenti linee:
  • set gfxmode=1024x768x32
  • set gfxpayload=1024x768x32
Direi che per oggi è tutto, buon divertimento con le nuove risoluzioni.

giovedì 10 dicembre 2009

Collegarsi da fuori alla rete di casa? openVPN!

Ora che abbiamo parlato dei certificati possiamo cominciare ad utilizzarli; probabilmente questo utilizzo non è quello più semplice che una persona possa immaginare, ma sicuramente è uno di quelli che permette di capire le potenzialità offerte dalla struttura di certificati di tipo X.509.
Tralasciando la parte relativa alla creazione dei certificati che ormai è stata ampiamente trattata, vi annuncio solamente che l'autenticazione avviene attraverso i certificati X.509, quindi per il server e per ogni client sarà necessario avere a disposizione un certificato, garantito dalla propria CA, con la relativa chiave privata. Due comandi che potrebbero farvi comodo per abbreviare i processi di creazione dei certificati, in caso di creazioni massive, sono i seguenti (dovete posizionarvi all'interno della directory della CA):
  • openssl req -new -keyout private/host-utente.unsec.key -out newcerts/host-utente.pem.csr -nodes -text -config ../openssl.conf -subj /"C=IT"/"ST=Provincia"/"L=Città"/"O=Organizzazione"/"OU=openVPN organizzazione"/"CN=utente"/"emailAddress=indirizzo di posta"/
  • openssl ca -policy policy_anything -in newcerts/host-utente.pem.csr -out certs/host-utente.pem.crt -config ../openssl.conf -batch -days 1465
Ora veniamo alla parte più complessa, le configurazioni del server e dei client, ma prima di procedere vi devo descrivere la struttura di funzionamento su cui si basa openVPN (considerate che alcune assunzioni sono relative solamente alla mia metodologia di configurazione e vi sono altre possibilità):
  • l'autenticazione avviene SOLAMENTE attraverso i certificati firmati dalla stessa CA;
  • l'assegnazione degli indirizzi viene fatta in base al certificato presentato dal client, quindi se il file di configurazione per il client non è stato creato non è possibile collegarsi alla VPN perchè non viene assegnato l'indirizzo;
  • la default route rimane quella presente anche prima dell'attivazione della VPN;
  • solamente le macchine per cui viene specificato il routing sono raggiungibili (questo per limitare le possibilità di conflitto degli indirizzi).
A questo punto creiamo il file di configurazione del server che sarà /etc/openvpn/host-server.conf:
daemon
mode server
tls-server
dev-node /dev/net/tun
dev tun1194
proto udp
port 1194
tun-mtu 1250
ifconfig 10.0.0.1 10.0.0.2
client-config-dir /etc/openvpn/CN2ip
route 10.0.0.0 255.255.255.0
push "route 10.0.0.1 255.255.255.255"
client-to-client
dh /etc/openvpn/certs/dh1024.pem
ca /etc/ssl/YOUR_CA/CA.pem
cert certs/host-server.pem.crt
key certs/host-server.unsec.key
user nobody
group nogroup
persist-key
persist-tun
comp-lzo
keepalive 20 90
verb 1
log-append /var/log/openvpn/server.log
mssfix
Ora spiego i paratetri principali... il parametro daemon, mode server, tls-server e quelli realtivi al tun significano di eseguire openVPN come servizio, di abilitare le modalità server, di creare ed utilizzare utilizzare l'interfaccia tun1194 ed associargli l'mtu dichiarato.
I parametri proto, port, persist-key, persist-tun, comp-lzo e keepalive specificano il protocollo, la porta di servizio, la persistenza della chiave privata e dell'interfaccia tunnel (in caso di restart non vengono reiniziallate), la compressione ed il keepalive, ovvero ogni quanti secondi, dopo che non vi è traffico, inviare dei dati e quanto aspettare prima di riavviare il tunnel se non vi è risposta... parlando di standard imposti dallo IANA, openVPN è stato attestato sulla porta 1194 e con protocolli TCP/UDP. La scelta del protocollo può essere influenzata principalemente da due fattori, la facilità di attraversamento dei firewall per il protocollo UDP o la possibilità di utilizzare il protocollo TCP (modalità tcp-server/tcp-client) per tunnellizzare le connessioni (ad esempio tramite ssh).
I parametri ifconfig e route assegnano l'indirizzo ip e le informazioni di routing all'interfaccia rete creata, mentre client-to-client permette a client di vedersi a vicenda.
Le impostazioni scritte in formato push sono invece relative ai comandi da inviare indistintamente ad ogni client che si collega; siccome può capitare, e nel caso di indirizzo ip statico capita sicuramente, di dover inviare informazioni specifiche a client identificati, l'opzione che ci fa comodo è client-config-dir, e rappresenta il percorso in cui devono essere presenti i file con le configurazioni personalizzate. All'interno di questa directory, i file vengono collegati al loro destinatario attraverso il nome, questo deve essere lo stesso presente all'interno del CN ed in caso di spazi il carattere viene sostituito con l'underscore (_).
Ad esempio, se noi vogliamo che chi si presenta con un certificato valido con CN "Mario Bianchi" abbia un determinato indirizzo IP assegnato, dovremo creare il file /etc/openvpn/CN2ip/Mario_Bianchi con al suo interno i seguenti comandi:
ifconfig-push 10.0.0.14 10.0.0.13
# push "route 192.168.0.127 255.255.255.255" # Indirizzo da raggiungere attraverso la VPN
Ricordate che ogni client in connessione occupa una classe di tipo /30, ovvero ip di network, ip del client, ip del peer, ip di broadcast, quindi equivale dire 4 indirizzi ip... affinchè non vi siano errori di rete dovuti a sovrapposizioni, i client potranno solamente avere indirizzi ip 10.0.0.6, 10.0.0.10, 10.0.0.14...
Le opzioni ca, cert e key non dovrebbero aver bisogno di spiegazioni, sono i parametri relativi alla CA ed al certificato presentato dal server; l'unico parametro non noto e relativo alla crittografia è dh, che deve essere un file di tipo Diffie Hellman; per generarlo potete utilizzare il seguente comando:
  • openssl dhparam 1024 > /etc/openvpn/certs/dh1024.pem
I parametri user, group, verb e log-append specificano le modalità con cui il tunnel deve funzionare, ovvero i permessi con cui girare e quante informazioni di debug devono essere presenti all'interno del file di log.
Ora, se avete terminato la configurazione e l'avete terminata in maniera corretta potete provare a vedere cosa succede avviando la openVPN con:
  • /etc/init.d/openvpn restart
Se tutto ha funzionato ora avete un processo openVPN che è in esecuzione... adesso non rimane che configurare i client.
Il file di configurazione di un client è molto simile a quello per il server, ma mancano le informazioni per l'assegnazione dei parametri di rete che devono essere prelevate dal server, inoltre in genere la maggior parte dei client normalmente sono machcine windows, quindi file di configurazione con estensione ovpn, certificato e chiave saranno in un'unica cartella; un file di esempio è il seguente:
pull
tls-client
dev tun
proto udp
remote server-host port
remote server-ip port
tun-mtu 1250
resolv-retry infinite
nobind
ca ./hostCA.crt
cert ./host-nome.pem.crt
key ./host-nome.unsec.key
persist-key
persist-tun
ping 30
ping-restart 90
comp-lzo
mssfix
verb 1
Adesso vi spiego i nuovi parametri apparsi... pull e tls-client significano di richiedere le informazioni di configurazione al server ed il tipo di autenticazione utilizzata, remote è una lista di host/ip seguiti dalla porta che dovrebbe essere in ascolto a cui il client continuerà a provare a collegarsi all'infinito.
Siccome la maggior parte dei client saranno macchine windows (od almeno questa è la mia esperienza), affinchè il file di configuraizone venga riconosciuto come tale, deve avere estensione ovpn; inoltre, sotto windows, è molto più semplice mettere tutti i file relativi ad una VPN in una singola cartella (file.ovpn, file.unsec.key, file.crt e fileCA.crt) per non dover specificare percorsi assoluti che potrebbero cambiare con lo spostamento della directory.
Il parametro nobind impedisce ad openVPN di posizionarsi in ascolto, ma fa sì che la connessione alla VPN venga solamente tentata e non attesa, mentre ping e ping-restart fanno sì che avvenga un ping ogni tot secondi e se non si riceve risposta il tunnel viene reinizializzato.
Ultima cosa da notare... non c'è l'informazione relativa al file di log, sappiate che se abilitate il log su file non sarete più in grado di vederlo a video se siete su di una macchina windows.
Direi che a questo punto potete provare la connessione da un client, ricordatevi che il certificato della CA deve essere presente assieme ai file relativi al client, questo perchè openVPN controlla che il server sia effettivamente colui che ci si aspetta e quindi il suo certificato deve essere firmato dalla stessa CA.
Con questo penso di aver trattato tutto il minimo necessario per fare una VPN con determinate caratteristiche; la configurazione di esempio che ho utilizzato è quella che utilizzo più spesso dato che consente di vincolare univocamente un indirizzo IP ad un determinato certificato, sappiate che comunque è possibile creare una VPN in maniera che chiunque si presenta con un certificato valido riceva un indirizzo come se fosse presente un DHCP. Di sicuro cercando su internet troverete molte informazioni più dettagliate ed altre modalità di funzionamento, ma il mio voleva essere solamente un vademecum di come mettere su una VPN, in maniera veloce ed indolore, con autenticazione tramite certificati ed indirizzi ip statici.

venerdì 4 dicembre 2009

Creare i certificati X.509

Bene, ora è giunto il momento di creare la nostra gerarchia di certificati, ma prima di fare questo guardiamoci un attimo attorno per capire come funzionano le cose fatte dai grandi gestori... se prendessimo come esempio le CA riconosciute ufficialmente, osserveremmo che loro richiedono solamente la richiesta di certificato, a cui applicano la firma, per poter poi restituire il certificato; questo viene fatto ai fini di sicurezza dato che voi, i proprietari della chiave privata, volete che NESSUNO sia in grado di venire a conoscenza dei dati che transitano; logicamente se generassero loro la vostra richiesta di certificato, avrebbero generato anche la chiave privata, e quindi la conoscerebbero; inoltre ve la dovrebbero trasmettere, esponendo la chiave privata a possibili sguardi inopportuni e riducendo largamente la sicurezza del sistema creato.
Nel nostro caso le cose si semplificano di molto dato che do per assunto una situazione prestabilita (che riduce altamente la sicurezza in caso di compromissione del server, ma non facendo transazioni bancarie lo ritengo un rischio accettabile): la chiave privata verrà utilizzata da servizi presenti sulla stessa macchina che gestisce la CA, quindi entrambe le chiavi possono risiedere a bordo di questa e gli unici occhi che le possono leggere sono i nostri (sempre che abbiate protetto bene il server).
Per generare la coppia di chiavi, ovvero la chiave privata e la richiesta di certificato (che contiene quella pubblica), eseguire la firma con la CA ed ottenere quindi il certificato, si può utilizzare il seguente script in /etc/*/makeCert.sh:

#!/bin/bash

# Script per la creazione della coppia chiavi pubblica/privata, per la generazione della richiesta di certificato, per la firma della richista trmaite la CA e per la generazione del certificato.
function newCert {
echo -n "Vuoi generare una chiave privata senza password? (s/N) ";
read ANS;
case ${ANS} in
"S"|"s"|"Y"|"y") echo "Attenzione, la chiave privata sara' leggibile da chiunque!";
openssl req -config ${opensslConf} -new -text -nodes -keyout ${CApath}/private/${NOME}.key -out ${CApath}/certs/${NOME}.pem.req;
;;
"N"|"n"|"") echo "Attenzione, ad ogni accesso alla chiave privata si dovra' fornire la password!";
openssl req -config ${opensslConf} -new -text -keyout ${CApath}/private/${NOME}.key -out ${CApath}/certs/${NOME}.pem.req;
echo "Per la rimozione della password usare il seguente comando: openssl rsa -in ${CApath}/private/${NOME}.key -out ${CApath}/private/${NOME}.unsecure.key";
;;
esac;
}
opensslConf=$(find /etc -iname openssl.cnf|sort|head -1);
CApath=$(grep "^[[:space:]]*dir[[:space:]]*=" ${opensslConf} | sed "s/.*=\s\+//" | awk '{print $1}');
if [ "$1" == "" ]; then
echo "La sintassi del comando e' $0 <nome_cert>";
exit -1;
fi;
NOME=$1;
if [ -s "${CApath}/newcerts/${NOME}.pem.crt" ]; then
echo "E' gia' presente il certificato ${CApath}/certs/${NOME}.pem.crt, vuoi rinnovarlo revocandolo ed emettendone uno nuovo [s/N]? ";
read ANS;
case ${ANS} in
"S"|"s"|"Y"|"y") echo "Verra' ora revocato il certificato";
openssl ca -config ${opensslConf} -revoke ${CApath}/newcerts/${NOME}.pem.crt
;;
"N"|"n"|"") echo "Si e' deciso di non revocare il certificato precedente, si potra' proseguire solamente sovrascrivendo i vecchi dati, ricordati che non puoi avere certificati con CN uguali.";
;;
esac;
unset ANS;
fi;
if [ -s "${CApath}/certs/${NOME}.pem.req" -o -s "${CApath}/private/${NOME}.key" ]; then
echo "E' gia' presente la richiesta di certificato ${CApath}/certs/${NOME}.pem.crt, vuoi sovrascriverla [s/N]? ";
read ANS;
case ${ANS} in
"S"|"s"|"Y"|"y") echo "La richiesta di certificato e le relative chiavi verranno sovrascritte.";
newCert;
;;
"N"|"n"|"") echo "Si e' deciso di non sovrascrivere la vecchia richiesta, impossibile proseguire.";
exit -1;
;;
esac;
unset ANS;
else
newCert;
fi;
OLD_UMASK=`umask`;
umask 77;
openssl ca -config ${opensslConf} -policy policy_anything -days 730 -out ${CApath}/newcerts/${NOME}.pem.crt -infiles ${CApath}/certs/${NOME}.pem.req;
chmod a+r ${CApath}/newcerts/*;
umask ${OLD_UMASK};

Dopo tutta questa sbrodolata di codice io sono esaurito, anche perchè lo scrivevo assieme al post e mentre facevo le prove; inoltre penso che se è la prima volta che vi avvicinate ad openssl abbiate le idee molto confuse... tranquilli, è normale. Negli script riportati in precedenza ci sono molti concetti sul funzionamento di openssl, su di alcuni schemi condizionali e sulle nomenclature (scelte da me con una certa logica); uno dei concetti più importanti che ci sono, riguarda il campo CN (Common Name) di un certificato: questo deve essere univoco all'interno di una CA, quindi se avete già emesso un certificato con quel CN è obbligatorio lo revochiate per poterne emettere un altro, anche se questo è già scaduto.
Con questo direi che la trattazione sembra abbastanza esaustiva o comunque sufficiente per rendervi operativi... ricordate che il CN è il campo fondamentale del vostro certificato, e deve contenere l'host, l'ip o l'indirizzo email, relativi al tipo di dati che si vuole proteggere.

giovedì 3 dicembre 2009

Certification authority? Certo, sulla Linux Box

Benissimo, se siete qui a leggere vuole dire che vi servivano informazioni su questo argomento, oppure vi sono piaciuti i post precedenti... io spero la seconda, logicamente per soddisfare un po' il mio ego.
Ora veniamo a noi ed alla breve spiegazione teorica... quando si parla di garantire trasmissioni sicure, si vuole ottenere un sistema che sia in grado di realizzare uno o più dei seguenti requisiti:
  • riservatezza/confidenzialità;
  • integrità;
  • autenticità;
  • non ripudio.
Lo scopo viene ottenuto grazie all'utilizzo della crittografia con il sistema delle chiavi pubblica/privata. Questo sistema viene realizzato attraverso i certificati X.509, che realizzano una struttura gerarchica, con sviluppo ad albero, i cui elementi sono legati tramite un rapporto di fiducia, ovvero il "padre" garantisce che i suoi "figli" sono coloro che dicono di essere (autenticità), mentre le parti di integrità, riservatezza e non ripudio sono garantite dalla crittografia legata all'utilizzo delle due chiavi. Logicamente, come dicono i nomi, la chiave pubblica può e deve essere distribuita per poter stabilire se un determinato messaggio è firmato dalla relativa chiave privata o, nel caso di utilizzo della crittografia, per poter crittografare il messaggio che verrà poi decifrato attraverso l'uso della chiave privata. Dietro a tutto questo ci sono molti concetti matematici, che se volete potete cercare e studiare, ma questo esula sicuramente da quello che voglio dirvi.
La parte pratica viene gestita nella seguente maniera:
  1. Il figlio genera la richiesta di certificato.
  2. Il padre firma la richiesta di certificato del figlio, tramite un certificato valido.
  3. La richiesta di certificato firmata diventa certificato e viene assegnato al figlio.
  4. Chiunque riconosce l'autorità del padre, automaticamente riconosce anche quella del figlio.
Chi ha spirito pratico, in tutto questo si sarà accorto di una cosa, e si chiederà: "e chi ha firmato il certificato del padre? il nonno? e chi quello del nonno?" e così via. Logicamente qui ci troviamo al discorso del "è nato prima l'uovo o la gallina?", ma la risposta è molto più semplice: il primo certificato si chiama self-signed, ovvero è un certificato autofirmato in cui il firmatario garantisce di essere chi dice di essere. Da un certificato di questo tipo possiamo far nascere la nostra CA, ovvero una certification authority, i cui "figli" saranno riconosciuti da chi ha considerato autorevole il certificato del padre, ovvero quello originario della nostra CA.
La gestione dei certificati all'interno di una linux box ricopre una parte vastissima perchè riguarda tutte le comunicazioni che si vogliono rendere sicure, e pensando alla sicurezza, sono aspetti imprescindibili e molto profondi, quindi conviene impararla velocemente, mettendo i puntini sulle "i" fin dall'inizio ed apprendendo tutto quello che serve. Il mio scopo è darvi delle brevi e semplici informazioni e molti dei comandi utili sotto forma di script, questo al fine di aiutarvi ad addentrarvi in openssl da subito... logicamente, come il solito, dove non arrivano le mie spiegazioni ci arriveranno quelle di qualcun altro che ha scritto un help, un howto o della documentazione varia resa disponibile attraverso internet.
Passando alla configurazione pratica, prima di tutto ci serve installare l'ambiente ed i comandi che ci serviranno per la nostra CA, quindi:
  • aptitude install openssl;
A questo punto a livello di comandi e configurazione avremo tutto quello che ci serve, ora dobbiamo solamente personalizzarlo modificando il file openssl.cnf (normalmente in /etc/ssl o /etc/pki/tls per le distribuzioni basate su RedHat) affinchè rispecchi i propri bisogni... io utilizzo i seguenti parametri (in Debian):
  • dir = /etc/ssl/YOUR_CA
  • private_key = $dir/private/cakey.unsec.pem # se la chiave non ha password
  • private_key = $dir/private/cakey.pem # se la chiave ha password
  • countryName_default = IT
  • stateOrProvinceName_default = Turin
  • localityName_default = Turin
  • 0.organizationName_default = YOUR organization
  • organizationalUnitName_default = host.domain from YOUR_CA
  • commonName = Common Name (eg, YOUR name as host or IP)
  • emailAddress_default = YOUR email address
  • challengePassword_default = longpasswordyouwant
Questi parametri presuppongono alcune strutture che io do per scontate nelle mie configurazioni e sono:
  • i percorsi a cui si fa riferimento in /etc/*/openssl.cnf sono di tipo assoluto;
  • la struttura della CA è locata all'interno di una directory del tipo /etc/*/CA;
  • il file openssl.cnf è nella stessa directory in cui vi è la CA;
  • il nome della CA viene utilizzato anche per il nome del certificato;
  • gli hash del certificato della CA vengono messi in /etc/*/certs.
A questo punto dobbiamo creare una struttura che ci permetta di svolgere i ruoli di una CA, ovvero coppia di chiavi pubblica/privata, un percorso in cui andare a salvare le richieste di certificato per elaborarle e trasformarle in certificato ed alcuni file necessari per la gestione "logica" della CA, compresa la CRL (Certificate Revocation List).
Il seguente script, da mettere in /etc/*/makeCA.sh, attingendo dai parametri immessi in openssl.cnf, prepara la struttura necessaria ad ospitare la CA.

#!/bin/bash

# Script per creazione della CA
opensslConf=$(find /etc -iname openssl.cnf|sort|head -1);
dir=$(grep "^[[:space:]]*dir[[:space:]]*=" ${opensslConf} | sed "s/[[:space:]]*dir[[:space:]]*=[[:space:]]*\([^[:space:]]*\)[[:space:]]*.*/\1/");
certificate=$(grep "^[[:space:]]*certificate[[:space:]]*=" ${opensslConf} | sed -e "s/[[:space:]]*certificate[[:space:]]*=[[:space:]]*\([^[:space:]]*\)[[:space:]]*.*/\1/" -e "s|\$dir|$dir|");
private_key=$(grep "^[[:space:]]*private_key[[:space:]]*=" ${opensslConf} | sed -e "s/[[:space:]]*private_key[[:space:]]*=[[:space:]]*\([^[:space:]]*\)[[:space:]]*.*/\1/" -e "s|\$dir|$dir|");
mkdir -pm 755 ${dir};
mkdir -pm 755 ${dir}/{certs,crl,newcerts};
mkdir -pm 700 ${dir}/private;
touch ${dir}/index.txt;
touch ${dir}/private/.rand;
echo 01 > ${dir}/serial;
echo -n "Vuoi generare una chiave privata senza password? (s/N) ";
read ANS;
case ${ANS} in
"S"|"s"|"Y"|"y") echo "Attenzione, la chiave privata sara' leggibile da chiunque!";
openssl genrsa -out ${private_key} 2048;
;;
"N"|"n"|"") echo "Attenzione, ad ogni accesso alla chiave privata si dovra' fornire la password!";
openssl genrsa -des3 -out ${private_key} 2048;
echo "Per la rimozione della password usare il seguente comando: openssl rsa -in ${private_key} -out ${private_key}.unsec";
;;
esac
openssl req -config ${opensslConf} -new -x509 -key ${private_key} -out ${certificate} -text -days 2922;
hash=$(openssl x509 -noout -in ${certificate} -hash);
ln -sf ${certificate} $(dirname ${dir})/$(basename ${dir}).crt;
ln -sf ${certificate} $(dirname ${dir})/certs/${hash}.0;

Ora la nostra CA è pronta a fare il suo dovere e mancano solamente più i certificati "figli".
Per scoprire come creare e gestire i certificati continuate a seguirmi, e vi fornirò le informazioni necessarie ad essere operativi... alla prossima!

giovedì 26 novembre 2009

E' ora del fax server... hylafax per tutti

Eccoci ad una nuova puntata... nell'ultima abbiamo configurato un modem per la nostra Linux Box, in questa ci occuperemo di farlo funzionare come fax, rendendo la nostra stazione un fax server che ci permetterà di inviare/ricevere fax senza il bisogno o l'obbligo di stamparli.
Il programma che andremo ad utilizzare è hylafax, ma questo ha bisogno anche di altri servizi dato che si appoggia alla posta elettronica, quindi per installarlo avremo bisogno di fornire anche un server smtp, ed io come preferenza scelgo postfix, quindi useremo il seguente comando:
  • aptitude install hylafax-server postfix
Il server di posta elettronica, per semplificare la configurazione, lo abilitiamo solamente per un funzionamento locale e quindi durante l'installazione vengono fatte altre poche domande e semplici, tipo il nome della macchina su cui girerà. La configurazione di entrambi i pacchetti verrà avviata automaticamente, ma se avessimo bisogno di rieseguirla dovremo digitare:
  • dpkg-reconfigure postfix;
  • dpkg-reconfigure hylafax-server;
Il file attraverso il quale si decide se avviare hylafax al boot è /etc/default/hylafax.
Per avviare la configurazione del server hylafax, e specificare il modem ed i parametri di comunicazione, si devono eseguire i seguenti comandi:
  • faxaddmodem;
  • faxsetup;
Al termine della configurazione, dopo aver fornito le risposte ad un sacco di domande (per la maggior parte vanno bene i valori di default), in /etc/hylafax saranno presenti tutti i file di configurazione, editabili anche a mano.
Le impostazioni importanti per utilizzare il nostro device come fax, riguardano la composizione, ovvero le dialstring... una serie di parametri corretti da avere all'interno del file /etc/hylafax/config.porta sono:
  • CountryCode: 39
  • AreaCode: 012
  • FAXNumber: "+39 012 3456789"
  • LongDistancePrefix: 0
  • InternationalPrefix: 00
  • RecvFileMode: 0644
  • LogFileMode: 0644
Due parametri che possono essere molto utili per identificare possibili problematiche riguardano le opzioni di tracing, ovvero i parametri SessionTracing e ServerTracing; valori più alti corrispondono ad un incremento del livello di verbosità (se vi serve modificarli cercate informazioni su internet per conoscere i valori esatti a cui impostarli).
Se vengono fatte delle modifiche ai file di configurazione ricordate sempre di riavviare hylafax:
  • /etc/init.d/hylafax restart
A questo punto il nostro fax server è pronto a spedire e ricevere fax, ma manca ancora una configurazione, molto importante per la fruibilità del server, ovvero la gestione degli utenti; gli utenti vengono gestiti con il comando "faxadduser -p password nome_utente" che permette di aggiungere un utente ed assegnargli una password. All'interno di /etc/hylafax/hosts.hfaxd, ogni linea di testo contiene delle credenziali di accesso che possono essere fatte in base al nome, all'host di provenienza e/o alla password; per i pattern riconosciuti viene fatto un matching seguendo le regexp.
La sintassi del file è la seguente:
  • client:uid:passwd:adminwd
Client è un'espressione regolare che deve matchare una sintassi del tipo "user@host", in cui host è una stringa oppure un indirizzo ip; per compatibilità con i vecchi formati, se client non contiene @, viene trattato come un host dal quale qualunque username si può collegare, come se fosse stato scritto "^.*@client$client$". L'uid è un valore numerico assegnato ai client per l'accesso (normalmente non viene utilizzato nelle configurazioni base). La password criptata è rappresentata dal campo passwd, se il campo è vuoto l'utente accede senza credenziali. Il campo adminwd contiene la password criptata per l'accesso ai privilegi amministrativi.
Adesso che abbiamo configurato il modem, il fax server è up e gli utenti sono definiti... non ci rimane che scaricare ed installare un client per Hylafax (sotto windows io mi trovo molto bene con Winprint Hylafax che installa una stampante virtuale) e cominciare a far le prove di invio.

Altri file di configurazione molto importanti sono:
  • /etc/hylafax/config è il file di configurazione per il processo di scheduling faxq;
  • /etc/hylafax/hfaxd.conf è il file di configurazione per hfaxd che si occupa di gestire le comunicazioni client-server; c'è da prestare attenzione al fatto che le comunicazioni di questo tipo seguono uno schema simile all'ftp, quindi in caso di problemi legati a nat presenti, è necessario utilizzare il modulo iptables connection tracking in questa maniera: insmod ip_conntrack_ftp ports=21,4559;
  • /etc/hylafax/hosts.hfaxd contiene gli utenti abilitati all'accesso al sistema.
Interazione con il mail server
Come detto all'inizio, Hylafax ricerca anche un programma di posta per essere in grado di comunicare con i mail server; questo è dovuto al fatto che i fax in ingresso possono essere indirizzati verso delle caselle di posta elettronica, l'esito dei fax in uscita viene inviato a caselle di posta elettronica ed è possibile inviare dei fax mandando una mail con allegato il documento da faxare ed il numero telefonico relativo, logicamente in un formato prestabilito.
Per eseguire la consegna automatica dei fax ricevuti è necessario creare il file /etc/hylafax/FaxDispatch e mettere al suo interno:
  • FILETYPE=pdf|ps|tif;
  • SENDTO=address@domain.ext;
Nel caso ci siano dei problemi con i file in formato binario (tif e pdf), sarà necessario aggiungere il percorso di uuencode:
  • MIMENCODE=/usr/bin/uuencode;
Informazioni per il debug
Quando si inviano dei fax, questi vengono posti in coda; per controllare la lunghezza della coda si deve utilizzare il comando faxstat -s. A questo comando corrisponde un output con la coda dei job presenti e lo stato; nel caso volessimo forzare una schedulazione in maniera immediata possiamo farlo con il comando: faxalter -A -v -a now JobID
La directory di lavoro di hylafax è /var/spool/hylafax, al suo interno sono presenti vari cartelle; all'interno di sendq sono presenti i fax in uscita, in doneq sono presenti i fax inviati, in recvq sono presenti i fax ricevuti, in docq ci sono i fax in formato postscript in attesa di invio e questa cartella normalmente viene pulita dal comando faxqclean.

mercoledì 25 novembre 2009

Configurazione di un modem/fax PCI sulla Linux box

I moduli disponibili su Debian per far funzionare i modem/fax PCI sotto linux sono: slmodem e martian-modem.
Tutta questa parte non è necessaria nel caso in cui disponiate di un modem seriale classico in quanto le porte seriali in linux sono già presenti ed accessibili.
Non curerò i particolari riguardo ai modem supportati perchè sono troppi e diversi, su internet ci sono molte informazioni che potrete trovare in base al chipset del vostro modem (lo scoprirete leggendo l'integrato presente sulla scheda e l'output del comando lspci -vvnn che contiene l'identificativo PCI); i siti principali sono http://www.linmodems.org/ e http://www.linuxant.com/. C'è un programma che aiuta nell'identificazione del modem ed è scanModem.
Le istruzioni coprono l'installazione di entrambi i driver, in questa maniera potrete provarli entrambi ed attivare solamente quello che vi serve, disinstallando eventualmente l'altro. Siccome sono dei driver "software", per entrambi sono disponibili gli script di avviamento a livello di servizio ed avviati al boot.
Partiamo con l'installazione dei pacchetti necessari:
  • aptitude install martian-modem-source sl-modem-source sl-modem-daemon martian-modem minicom
Ora proseguiamo con la compilazione e l'installazione dei driver:
  • m-a build martian-modem-source sl-modem-source
  • m-a install martian-modem sl-modem
Per conoscere i device PCI supportati da ciascun modulo si possono usar ei seguenti comandi:
  • modinfo slamr;
  • modinfo martian_dev;
Ed infine decidiamo quale avviare attraverso la configurazione con rcconf, ricordandosi anche di aggiungere il modulo in /etc/modules nel caso non venisse caricato dal suo script di avviamento.
Per testare il funzionamento dei driver con il nostro device, dovremo utilizzare minicom, che è il software per stabilire connessioni con il modem. Per il suo utilizzo dobbiamo configurarlo con minicom -s e dirgli quale porta utilizzare, la velocità e le stringhe di inizializzazione, in seguito salvarlo come configurazione dfl. Se volete, per i test, potete abilitare alzare il volume dello speaker del modem ed abilitarlo durante la fase di connessione con questi comandi modem: ATL3M1.
Una lista dei comandi possibili per le stringhe di inizializzazione è disponibile all'indirizzo http://michaelgellis.tripod.com/modem.html.

Se utilizziamo sl-modem, avviandolo con /etc/init.d/sl-modem-daemon restart, verrà creato automaticamente anche /dev/modem che è un link al device /dev/ttySL0 (che punta a /dev/pts/2).

Se utilizziamo martian_dev abbiamo il file di configurazione relativo in /etc/default/martian-modem che decide come verrà chiamato il link al dispositivo.

Sa avete un modem con chipset Ambient MD3200 è equivalente all'Intel 537EP ed è utilizzabile anche come FXO per asterisk. Il sito di riferimento per i driver è http://www.x9000.fr/Intel/. Io sono riuscito a compilare i driver per l'utilizzo di minicom, ma non riuscivo a farlo comporre; per utilizzarlo come FXO, tramite zaptel, sembra non siano necessari driver (http://www.alfersoft.com.ar/blog/2008/11/01/asterisk-pbx-with-x100p-clone-part-1-installation/).

Io avevo questi modem e per quelli in cui ho specificato i driver sono riuscito a controllare che venissero rilevati, ma non ho approfondito il funzionamento di quelli che non erano sl-modem o martian-modem:
  • 00:0e.0 Modem [0703]: Motorola SM56 Data Fax Modem [1057:3052] (rev 04) (prog-if 00 [Generic]) <-> sl-modem
  • 00:0e.0 Modem [0703]: ALi Corporation SmartLink SmartPCI561 56K Modem [10b9:5459] (prog-if 00 [Generic]) <-> sl-modem
  • 00:0d.0 Communication controller [0780]: Agere Systems LT WinModem [11c1:044c] (rev 02) <-> martian-modem
  • 00:0e.0 Communication controller [0780]: Tiger Jet Network Inc. Tiger3XX Modem/ISDN interface [e159:0001] <-> driver per Intel 537
  • 00:0e.0 Communication controller [0780]: Rockwell International HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem [127a:2015] (rev 01) <-> driver HSF linuxant
  • 00:0e.0 Communication controller [0780]: Ambient Technologies Inc HaM controllerless modem [1813:4000] (rev 02) <-> probabilmente non funziona sui kernel 2.6.x
  • 00:0e.0 Communication controller [0780]: Conexant Systems, Inc. SoftV92 SpeakerPhone SoftRing Modem with SmartSP [14f1:2f30] (rev 01) <-> driver HSF linuxant

lunedì 23 novembre 2009

Le estensioni di Firefox... di tutto e di più

Questo post è una piccola parentesi dedicata ai plugin ed agli addon che utilizzo di Firefox, questo è un breve elenco con un'altrettanto breve spiegazione per fare mente locale sulle possibilità e su cosa installare per ritenere il web browser una stazione di lavoro completa.
  • Adblock Plus: si occupa di bloccare gli ads, immagini e siti vari che trasmettono pubblicità;
  • CheckPlaces: controlla la validità dei bookmarks (fornendo il motivo del fallimento), controlla se ve ne sono di duplicati o se ci sono cartelle vuote;
  • DownloadHelper: permette di scaricare i filmati che vengono trasmessi da youtube o siti similari, ne supporta un numero molto elevato;
  • DownThemAll: tutto quello che potreste desiderare per scaricare a ripetizione una serie di link da una pagina;
  • Firebug:
  • FireFTP: un client FTP che supporta anche l'SFTP;
  • FireGestures: abilita le gesture avanzate tramite il mouse per controllare le schede e le finestre;
  • FlashGot: permette di inviare i download eseguiti da Firefox a dei downloader esterni;
  • FoxyProxy: massima flessibilità nella scelta del proxy e regexp per identificare il proxy da utilizzare in base all'indirizzo;
  • Gestione sessioni: permette di memorizzare e richiamare sessioni di navigazione, inoltre chiudendo il broweser permette di ricominciare dal punto in cui si era interrotta la navigazione;
  • Greasemonkey: plugin che permette l'inclusione di script utente per la gestione di procedimenti automatici;
  • iMacros: permette l'automazione di operazioni all'interno del browser attraverso l'utilizzo di script;
  • Live http header: esamina e mostra il traffico che viene scambiato durante una sessione di navigazione a livello di dati scambiati client-server, compresi header ed informazioni aggiuntive;
  • NoScript: permette di bloccare tutti i contenuti attivi da parte di siti non riconosciuti come sicuri;
  • ReloadEvery: permette di stabilire ogni quanto tempo ricaricare in automatico una pagina;
  • Screengrab: salva la pagina web come immagine;
  • Tamper Data: permette di modificare/elaborare i parametri passati in modalità POST da un form ad una pagina web;
  • WebDeveloper: contiene una serie di tool molto utili agli sviluppatori web e per l'analisi della struttura di un sito, permette anche una gestione avanzata dei cookie;
  • Xmarks: permette di salvare il proprio bookmark e/o le password su di un server, anche personale, per poterli sincronizzare con diversi PC.

venerdì 20 novembre 2009

SSH, difendersi da attacchi brute force ed autenticazione con certificati

L'ultima volta ci siamo lasciati dopo aver securizzato, nel migliore dei modi possibile per un'autenticazione basata su utente e password, il nostro server SSH.
Le nostre debolezze erano intrinseche al sistema di autenticazione utente/password in caso di attacchi di tipo brute force che lavorano per tentativi; qualche possibilità di difesa aggiuntiva la possono offrire sistemi alternativi, basati sull'individuazione di questo tipo di attacchi in maniera da poter prendere delle misure difensive.
Ve ne elenco alcuni: pam_tally, sshguard o sistemi di port knocking.
Io non li ho mai configurati, ma mi sono fatto uno script che opera in maniera simile ad alcuni di questi. Il sistema per tutti è simile, indiduare n tentativi di accesso falliti e bloccare momentaneamente, o definitivamente, l'utente tramite il pam o la sorgente tramite iptables. Il mio script ad esempio ogni ora verifica se ci sono attacchi in corso e se li trova blocca quell'indirizzo tramite iptables in maniera permanente.
Se però vogliamo parlare di securizzazione "profonda", possiamo solamente basarci sull'utilizzo dei certificati; grazie a questo sistema non si utilizzano più utente e password per autenticarsi, ma tutto avviene automaticamente grazie ai certificati ed un sistema di autenticazione dato da chiave pubblica e privata.
Ricordate che hardening dei servizi e facilità di utilizzo spesso sono parole inversamente proporzionali, quindi più è sicuro il vostro server e più sarà complesso il sistema da utilizzare per collegarvici (in questo caso dovrete sempre avere con voi la chiave privata per potervi autenticare).
Il principio di funzionamento ed i file interessati sono i seguenti (prendo in considerazione solamente i percorsi di default):
  • /etc/ssh/sshd_config (configurazione del server ssh)
  • ~/.ssh/authorized_keys - la chiave pubblica viene inserita all'interno della home directory dell'utente remoto che si va ad impersonificare e qualunque utente presenti la chiave privata viene autorizzato all'accesso grazie al riconoscimento dato dal legame matematico che esiste tra queste due;
  • ~/.ssh/id_rsa - la chiave privata rimane al client, risiede nella home directory dell'utente locale che si collega verso il server ssh;
  • file.ppk (chiave privata dell'utente se macchina Windows con Putty).
Nel caso non sia presente il file ~/.ssh/authorized_keys nella directory dell'utente remoto lo si deve creare a mano con i seguenti comandi:
  • cd ~
  • mkdir -pm 700 .ssh
  • touch ~/.ssh/authorized_keys
  • chmod 600 ~/.ssh/authorized_keys
La parte fondamentale riguarda la creazione delle chiavi pubblica e privata, che in caso di macchina linux è molto semplice ed è riassumibile con i seguenti comandi:
  • ssh-keygen -t rsa -f ~/.ssh/id_rsa
  • ssh-copy-id -i /home/utente/.ssh/id_rsa utente@ssh_server
  • ssh -p 2222 utente@ssh_server
  • se tutto ha funzionato ed il server era già abilitato per l'utilizzo dei certificati vi siete collegati senza digitare utente e password, diversamente controllate il contenuto del file con le chiavi pubbliche (cat .ssh/authorized_keys) e verificate che il file di configurazione contenga le seguenti linee, altrimenti aggiungetele e riavviare ssh (è necessario essere root):
    RSAAuthentication yes
    PubkeyAuthentication yes
A questo punto l'autenticazione tramite certificati dovrebbe essere funzionante, testatela e verificate che non vi venga chiesto niente e che riusciate a collegarvi, potete procedere a disabilitare quella eseguita tramite utente e password in maniera che non sia più possibile un attacco di tipo brute force.
La diabilitazione del login classico avviene aggiungendo le seguenti linee nel file di configurazione:
  • ChallengeResponseAuthentication no
  • PasswordAuthentication no
  • UsePAM no
Dopo aver riavviato il servizio ssh, se provate un login senza presentarvi con una chiave privata corretta, non potrete più collegarvi alla vostra Linux Box ricevendo un bel:
Permission denied (publickey).
Nel caso di utilizzo di Windows invece si deve utilizzare PUTTYgen per generare una coppia di chiavi e salvarla. In seguito editare manualmente il file ~/.ssh/authorized_keys presente nella home directory dell'utente remoto con cui ci si vuole autenticare ed inserire all'interno di questo la stringa presente nella text box e che comincia con "ssh-rsa". A questo punto il procedimento rimane poi identico, con la differenza che si deve dire a Putty di utilizzare il file poco prima salvato come chiave privata e gli si deve anche impostare l'utente di default per la connessione.
A questo punto, se avete seguito tutti i suggerimenti, la connessione con la nostra Linux Box dovrebbe essere molto sicura, non dico impenetrabile perchè nel campo della sicurezza non esiste mai niente di sicuro e nessun sistema è invulnerabile.

giovedì 19 novembre 2009

Configurare un server SSH

Il primo servizio da fornire, in ordine logico, è un servizio che permetta di potersi collegare alla Linux Box senza bisogno di essere localmente presenti o di avere una tastiera ed un monitor collegati direttamente al computer; questo lo si fa perchè una Linux Box normalmente non deve svolgere funzioni da desktop, ma funzioni da server, e quindi deve essere possibile "imboscarla" in luoghi in cui non da fastidio o dove occupa poco spazio.
La modalità di collegamento "primordiale" si chiamava telnet daemon e permetteva a chiunque di collegarsi alla macchina in oggetto, le stringhe digitate, come quelle di risposta generate dal computer, venivano scambiate attraverso un canale dedicato (socket tcp); questo scambio di dati veniva fatto in chiaro e quindi tutto quello che transitava (compresi utenti e password) era visibile attraverso particolari procedure (sniffing). Per ovviare a questo problema è nato ssh, che si occupa di crittografare il traffico rendendo inutile i tentativi di sniffing.
I passi per eseguire l'installazione e la configurazione del sistema, con uno stile molto schematico, sono i seguenti:
  1. prima di tutto è necessario installare il servizio:
    aptitude install openssh-server (Debian)
    yum install openssh-server (Fedora)
  2. assicurarsi che il servizio venga avviato con la macchina:
    update-rc.d ssh defaults (Debian)
    chkconfig sshd on (Fedora)
  3. modificare il file di configurazione per i propri scopi:
    vi /etc/ssh/sshd_config
  4. riavviare il servizio dopo ogni modifica al file di configurazione:
    /etc/init.d/ssh restart (Debian)
    /etc/init.d/sshd restart (Fedora)
Ora veniamo ad una serie di consigli e considerazioni sulla configurazione del servizio... siccome vi sono persone che sono molto interessate a poter usufruire di macchine al di fuori delle proprie mura casalinghe per poter sopperire a bisogni più o meno leciti, le prime attenzioni vanno poste alla securizzazione del servizio, giusto per tentare di non essere facile preda di cracker. Qui di seguito alcuni semplici consigli preliminari:
  • utilizzare una porta diversa dalla 22;
  • abilitare solamente host ed utenti considerati "sicuri";
  • disabilitare la possibilità di accesso come root;
  • abilitare solamente l'autenticazione tramite certificati.
Siccome non è per niente difficile creare dei programmi o script per tentare il brute force di utenti e password, l'unico problema del cracker rimane individuare un server, attività facilmente eseguibile tramite dei port scanning, conviene cambiare alcuni parametri di default del file di configurazione /etc/ssh/sshd_config.
La prima operazione, e più semplice, è cambiare la porta di default, riducendo già di molto il numero di persone in grado di individuare il vostro ssh in ascolto e riducendo di conseguenza il numero degli attacchi ricevuti. Considerate che spostare il servizio sulla porta 443 affinchè sia facilmente raggiungibile da reti aziendali attraversando firewall e proxy senza grossi problemi, non vi salva dalle scansioni; molti cracker conoscono questo trucco e sanno che le probabilità di trovare degli ssh su quella porta non sono così remote. Per modificare la porta di default, all'interno del file di configurazione dovrete avere una linea del tipo:
  • Port 2222
La sicurezza dell'autenticazione si basa su due parametri, nome utente e password; se uno dei due è noto la facilità di un attacco brute force aumenta di molto le possibilità di riuscita. Per ovviare a questo problema è possibile disabilitare il login dell'utente root, sicuramente presente su ogni macchina, impostandolo a no o a without-passoword (autenticazione permessa solamente con un certificato valido); inoltre si possono autorizzare o negare (la negazione ha la precedenza in caso di "conflitto") l'accesso a determinati utenti o gruppi e/o specificare le sorgenti da cui è possibile collegarsi o meno. Come esempio vi riporto alcune possibili linee di configurazione con i parametri che stabiliscono queste opzioni all'interno del file di configurazione:
  • PermitRootLogin without-password
  • DenyGroups group1 group2
  • AllowGroups group3
  • DenyUsers root user1@192.168.*.*
  • AllowUsers user1 user2@192.168.*.* user3@*.domain.org
Per rendere un sistema molto più sicuro, evitando di basare l'autenticazione sulla sola conoscenza di dati riservati, ma spostandola a dati che si "hanno" e non facilmente riproducibili, la via più sicura è quella di lasciare abilitata solamente l'autenticazione tramite certificati. Questo tipo di autenticazione è altamente sicura in quanto si basa sulla crittografia a chiave pubblica, ma siccome questo sistema presuppone delle modifiche alla configurazione abbastanza importanti, lo tratteremo in un altro post.
Sperando di essere riuscito a condensare l'enorme mole di concetti e possibilità in questo post, vi aspetto per leggere i prossimi.

mercoledì 18 novembre 2009

Installazione di una linux box con Debian

Questo è l'inizio di una serie di post dedicati alla configurazione dei servizi che possono essere forniti da una Linux box, servizi che rimangono visibili solamente a voi, gestiti da voi ed il cui accesso può essere demandato solamente da voi; è anche l'unico motivo per cui preparare un computer dedicato all'utilizzo da remoto, altrimenti potrebbe bastare un'installazione desktop di GNU Linux per sfruttare servizi forniti da altri server, magari su internet.
Bene, ora possiamo cominciare a pensare a preparare la Linux Box secondo i nostri gusti... essendo una Linux Box assumo che vogliate un'installazione testuale, da eseguire su di un vecchio hardware da imboscare in qualche angolo della casa dove arriva solamente una presa elettrica ed una di rete.
Il sistema operativo che utilizzeremo al nostro scopo è la Debian, scaricabile liberamente da http://www.debian.org attraverso diversi sistemi (HTTP/FTP, BitTorrent o Jigdo). Qui troviamo le immagini di installazione della distribuzione definita "stable", questa contiene pacchetti molto conservativi, definiti altamente stabili e molto sicuri (quindi software in circolazione già da un po' di tempo); normalmente è più che sufficiente non volendo interfacce grafiche all'ultimo grido, ma se si vogliono servizi nuovi e molto recenti è necessario migrare alla versione "testing" od "unstable".
Io considero che siate in grado di ottenere un'installazione minimale del sistema, e se non lo siete ci sono un sacco di ottimi tutorial, ovvero qualcosa di perfettamente funzionante ed autonomo, che garantisce le funzioni minime per l'accesso al computer e lo svolgimento delle operazioni di base, possiamo cominciare a pensare ai servizi che potrebbero esserci utili e che potremmo utilizzare da remoto; ricordate di operare sempre come utente "normale" ed utilizzare l'utente root solamente in caso di bisogno.
Se volete/dovete passare ad una distribuzione di tipo testing (software recente, stabile e che ha quasi terminato il ciclo di test per la sicurezza) od unstable (software all'ultimo grido di cui si sa poco o niente), dovete andare ad editare il file di configurazione che si occupa di gestire gli aggiornamenti, ovvero /etc/apt/sources.list e mettere, al posto del nome della distribuzione o della parola stable, la parola testing od unstable... io per ottenere un buon compromesso in genere utilizzo la versione testing per i file binari e la unstable per i sorgenti, in questa maniera è più semplice accorgersi se qualcosa non va o mancano le dipendenze fin dall'inizio.
Se volete automatizzare e scegliere i mirror più veloci disponibili potete utilizzare il comando netselect-apt, questo scarica una lista di mirror e li testa per vedere quale offre migliore velocità... io non ho ancora indagato se per migliore intende con il minor tempo di risposta o con la maggior banda.
La lista dei comandi necessaria per estrarre i dati che ci itneressano sono dati dai seguenti comandi (il significato delle opzioni controllatelo nell'help):
  • aptitude install netselect-apt;
  • netselect-apt -n --outfile best.list testing;
  • cat best.list >> /etc/apt/sources.list;
  • vi /etc/apt/sources.list;
Una volta modificate le impostazioni sulla versioni è necessario aggiornare l'elenco dei pacchetti disponibili, ed eventualmente il sistema intero, con i seguenti comandi:
  • aptitude update;
  • aptitude dist-upgrade;
si aggiorneranno un sacco di pacchetti se avete cambiato la versione e magari vi verranno chieste delle conferme, anche complesse, sulle configurazioni, ma avendo un sistema base senza personalizzazioni potete accettare tutto senza problemi.
Come detto prima abbiamo una distribuzione molto "base" a cui manca qualunque cosa supplementare... quindi, anche in caso di richieste complesse sulle configurazioni da attuare, potete sempre installare le versioni più recenti, non preoccupandovi di quello che era presente nel sistema.
Io in genere voglio sempre poter compilare tutto senza problemi, quindi preparo l'ambiente di compilazione, compreso quello per i moduli del kernel, con i seguenti comandi:
  • aptitude install module-assistant;
  • m-a prepare;
Siccome per alcuni aspetti mi piace lavorare "comodo", installo sempre Midnight Commander, un clone di Norton Commander che risale ai tempi del Dos, il comando less per visionare i file, le psmisc per il controllo dei processi e rcconf, per stabilire i servizi da avviare all'interno del sistema... il comando necessario è: aptitude install less mc psmisc rcconf.
A questo punto è pronto un ambiente base con doti di compilazione, potrete scaricare pacchetti sorgenti, moduli aggiuntivi del kernel e compilarli... se però ci fossero dei problemi di compilazione le cose si complicheranno, ma se siete già a quel punto probabilmente le mie informazioni molto probabilmente sono superflue perchè sapete già dove andare a cercare.
Adesso manca un'ultima precisazione... ricordate che le parole "servizi" e "da remoto" devono farvi accendere una lampadina perchè sono strettamente legate ad un concetto indissolubile: la sicurezza; se non ci occupiamo di quest'ultima chiunque sarà in grado di fare le nostre stesse operazioni, amministrando servizi a sua discrezione, o, nel caso peggiore, il computer completo e lo potrà fare con qualunque scopo a noi sconosciuto.

martedì 17 novembre 2009

Una linux box per SmanettoneX

Forse adesso vi sembrerà più chiara la motivazione della X finale, è uno storpiamento fatto pensando a Linux; probabilmente fosse stato libero l'host losmanettone.blogger.com non mi sarei posto il problema, ma vedendo che qualcuno era già passato per creare un blog morto dopo poco, ho dovuto adattarmi ed accontentarmi degli host liberi che rimanevano... comunque direi che non posso ritenermi insoddisfatto.
Come potreste aver intuito dal post sulla favola di Linux, o dal titolo di questo post, io sono un grande simpatizzante, utilizzatore, supporter e, quando mi riesce, sviluppatore di questo sistema operativo.
Le motivazioni che possono portare una persona al suo utilizzo sono molteplici... partendo dalla filosofia ed ideologia collegata al progetto fino agli aspetti pratici e/o economici. Di svantaggi per una scelta di questo tipo non ne ho trovati, software free o proprietario presuppongono che le persone vengano comunque formate al suo utilizzo e quindi l'unica necessità che si ha è di investire del tempo nell'apprendimento e nella comprensione del software per poterlo utilizzare al meglio; la complessità del software free potrebbe essere leggermente superiore in quanto si tende ad avere un'attenzione inferiore ai fronzoli, ma si bada molto al contenuto ed alle funzionalità.
Io Linux ho cominciato ad usarlo in ambito tecnico universitario, durante la tesi, e durante questo primo contatto ho percepito molto chiaramente le difficoltà presenti per chi era cresciuto con il Dos, ma che si era poi lasciato andare a Windows... a quei tempi l'ambiente era prevalentemente testuale, i comandi erano di base ed i sistemi di funzionamento erano completamente diversi, le interfacce grafiche erano poco sviluppate, poco personalizzabili e molto complesse da usare e configurare... Allo stato attuale sembra di vivere in un altro pianeta grazie alle migliorie apportate, le interfacce sono molto user friendly e gli installer sono alla portata della maggior parte delle persone.
La spinta per continuare ad usarlo ed adottarlo come se fosse un figlio molto promettente sono state le avanzate possibilità di funzionamento che mi venivano fornite, il vasto parco software in continuo ampliamento, l'elevata affidabilità e la possibilità di adattarlo perfettamente alle proprie esigenze grazie alle molte informazioni reperibili su internet. L'avere gratis tutto quello che mi serviva senza infrangere la legge era poi una soddisfazione immensa!
Da allora posso dire che non sono più riuscito a stare senza un computer che avesse GNU Linux a bordo e le mie preferenze si sono affinate sfociando in due diversi ambiti a seconda dello scopo da raggiungere:
- Debian per i sistemi server;
- Fedora per i sistemi desktop.
Ora mi considero un utEntE, sempre affiancato dalla sua Linux Box raggiungibile da ovunque e con tutti i servizi ritenuti indispensabili a bordo, e non un utOntO che effettua le sue scelte perchè non ha la voglia ed il tempo di imparare, capire e sperimentare le nuove frontiere della tecnologia, con software sempre tecnologicamente avanzato e sviluppato al fine di produrre un valore aggiunto in ogni ambito.
Adesso che sapete le potenzialità di un sistema come Linux potreste decidere di provarlo se le mie parole hanno risvegliato il vostro interesse... allora cosa aspettate? Ah, dimenticavo, non usate scuse del tipo "ma il mio computer è vecchio" perchè con Linux configurato come ambiente server (quindi testuale) si possono tranquillamente riutilizzare hardware molto vecchi ed ormai obsoleti per gli altri sistemi operativi di nuova generazione.
Per farvi un'idea di cosa si possa fare con una Linux Box continuate a leggermi, ho in mente di scrivere dei post sulle configurazioni dei servizi più complessi e lunghi.

lunedì 16 novembre 2009

Una bella favola... Linux

Nel 1998 ho avuto il mio primo contatto con Linux, la distribuzione era una RedHat, la versione non ricordo se era 4 o 5; a quei tempi le ideologie sul software libero non erano ancora diffuse, di copyright non se ne sentiva quasi parlare, la pirateria imperversava e Windows doveva la sua diffusione a quest'ultima (logicamente ad un impiegato che sapeva usare Windows veniva affidata una piattaforma con quel sistema e "forse" licenziata per essere nella legalità).
Adesso i tempi sono cambiati, il copyright imperversa, i detentori dei diritti non permettono più lo sfruttamento delle loro opere senza che venga corrisposto loro nulla e quindi o si paga o non si utilizzano i loro prodotti per operare nella legalità.
Fortunatamente, prima di arrivare a questa situazione di stallo, si è venuto diffondendo un nuovo sistema operativo, Linux, nato dalla tesi di uno studente, Linus Torvalds, che voleva creare un sistema simile a Minix.
Il fatto è che per avere un computer "utilizzabile" non basta avere un kernel (cuore del sistema operativo), ma ci andava anche tutto il contorno, e per prima cosa serviva un ambiente di sviluppo ed un debugger per poter creare le applicazioni, verificarne il funzionamento e gestirle... è a questo punto che è entrato in ballo Richard Stallman, fondatore della Free Software Foundation, e che aveva già a sua disposizione un ambiente di sviluppo (gcc), un debugger (gdb) ed un editor (emacs), creati da lui, ma che mancavano di un cuore su cui appoggiarsi.
L'unione di questi due progetti ha fornito le basi per la creazione di un ambiente completo, GNU Linux, pronto ad ospitare svariate applicazioni create da chi avesse voluto farsi avanti con i tool che venivano messi a disposizione dei programmatori.
Intorno a questo progetto sono nate un'immensità di comunità, pronte a svilupapre le applicazioni necessarie al fine di rendere i computer fruibili anche da parte degli utenti normali e senza dover fare affidamento a software proprietari, con licenze software chiuse od obbligatoriamente a pagamento.
Da allora GNU Linux ha cominciato a crescere, prima lentamente, poi accellerando in maniera proporzionale rispetto alla sua popolarità; questo grazie agli utenti che lo utilizzavano, lo consigliavano, ne diffondevano le ideologie e ne elogiavano i pregi, facendo crescere e/o nascere le comunità di sviluppatori indipendenti pronte a fornire per hobby gli strumenti od i software che mancavano.
Da allora GNU Linux viene sostenuto e portato avanti da milioni di persone che lo utilizzano, sviluppano software dedicato, forniscono il loro tempo per il testing ed il supporto e forniscono nuove idee... ormai vive di una vita propria, diffusa in ciascuno degli utilizzatori, che lo conoscono e non vogliono che muoia.

P.S. Scusate le inesattezze che probabilmente potrebbero esserci a livello di nomenclatura, ma interpretatela come la favola da raccontare ai bambini prima di andare a dormire... deve essere semplice, veloce e con un bel finale.

venerdì 13 novembre 2009

Dalla Cina (od Hong Kong) col furgone!

A parte il remake scherzoso dei titoli di film famosi che hanno fatto la storia del cinema, questo post è dedicato agli acquisti online effettuati in una particolare parte del mondo: la Cina ed Hong Kong.
Tralasciando le discussioni sull'affidabilità dei venditori e sull'intelligenza degli acquirenti per evitare di farsi fregare (hanno fregato anche me, ma faccio tesoro delle esperienze e proseguo), passiamo alle informazioni utili per chi ci vuole provare.
Questo tipo di acquisti fa parte di una categoria più grande e problematica che sono quelli eseguiti in paesi extra CE. Questo tipo di spedizioni non è tanto problematico per il tragitto che deve affrontare, infatti mi è capitato raramente che il pacco venisse perso, ma per le pratiche burocratiche che subisce.
La legge italiana prevede che i prodotti non provenienti da altri paesi della Comunità Europea debbano attraversare la dogana e subire la procedura, detta sdoganamento, che si occupa di applicare le tasse (I.V.A.) al prodotto in transito, applicare gli eventuali dazi doganali ove previsti e far pagare le spese di sdoganamento (2,50+3,00 €).
Una volta lo sdoganamento era una procedura lunga e laboriosa, gli unici uffici preposti alle pratiche erano le dogane (2 o 3 in italia) e spesso i pacchi rimanevano bloccati a causa dell'enorme mole di lavoro (in aumento) ed in attesa della documentazione atta a dimostrare il valore dell'oggetto fermato ed i dati del destinatario.
Negli ultimi anni (dal 2007 o 2008), lo sdoganamento dei pacchi postali inferiori ai 2kg viene gestito direttamente da Poste Italiane S.p.A. tramite una procedura domiciliata e quindi molti dei problemi di cui si può leggere facendo ricerche su google sono stati risolti.
All'indirizzo http://www.poste.it/postali/dogane.shtml è possibile leggere informazioni utili al fine di evitare possibili blocchi dei pacchi spediti; le informazioni importanti sono: è necessario far compilare, al mittente, la dichiarazione (modelli CN22 - CN23) in maniera corretta, completa, e leggibile, devono essere riportati in maniera chiara e corretta i dati del mittente, la tipologia, il valore reale dell'oggetto, le spese di trasporto sostenute (io non le ho mai viste sui pacchi ricevuti) ed è fondamentale indicare con precisione la tipologia della merce per l'applicazione dell'esatto trattamento daziario e fiscale e per accertare l'eventuale necessità di licenze o l'esistenza di limitazioni all'importazione.
Contrariamente a quello che si sente dire da chi è poco informato, non tutti i pacchi che provengono da paesi extra CE vengono sdoganati con l'applicazione delle tariffe di sdoganamento, dell'IVA e dei dazi, ma l'applicazione varia in base al valore dichiarato della spedizione (inoltre dovrebbe variare anche in base alla finalità della spedizione, ovvero commerciale, regalo od altro).
Sempre sul sito delle poste, è riportato molto chiaramente il tariffario applicato ai pacchi che attraversano la dogana: http://www.poste.it/postali/tariffe_sdoganamento.shtml.
Semplificando di molto tutte le discussioni, per non ritrovarsi spiacevoli sorprese, pacchi bloccati in dogana (logicamente le dichiarazioni sui moduli devono essere reali) o spese supplementari, i valori dei pacchi ricevuti (valore dell'oggetto più le spese di spedizione) non devono superare i 45,00 € se sono invii tra privati od i 22,00 € nel caso di invii di carattere commerciale (il mittente od il destinatario sono una società, quindi attenzione a farseli inviare in ufficio).
L'ultima nota riguarda i tempi di ricevimento delle merci... la maggior parte dei pacchi (in realtà mi sono sempre arrivate solamente delle buste imbottite, anche di grandi dimensioni) impiega tra i 15 ed i 20 giorni lavorativi (3 o 4 settimane); mi è successo raramente che i pacchi arrivassero al di fuori di questo intervallo. L'unico caso in cui ho dato per disperso il pacco è stato perchè arrivato oltre le 5 settimane, la causa di questo ritardo era da attribuirsi ad un'esecuzione di un'ispezione doganale, quindi il pacco è arrivato aperto (per fortuna con tutto il suo contenuto) e richiuso con del nastro con sopra la scritta "sottoposto ad ispezione doganale".
Io per adesso continuerò a fare acquisti in questo modo... voi cosa avete deciso?

giovedì 12 novembre 2009

Il digitale terrestre (DVB-T) in Italia... e linux

Come ben sapete, e se non lo sapete a breve lo saprete per forza, l'Italia sta modificando su tutto il suo territorio il sistema di trasmissione televisivo, spegnendo progressivamente i ripetitori di segnale analogico e sostituendoli con quelli digitali. Questa è una richiesta arrivata da più in alto, ovvero dalla Comunità Europea, ma i tempi di realizzazione avrebbero potuto traquillamente essere dilatati.
La transizione verso il nuovo sistema è partito nel secondo semestre del 2008 ed andrà a finire nel secondo semestre del 2012; molte persone anziane ed altre non amanti della tecnologia, che si appoggiavano al televisore solamente per vedere i canali nazionali più famosi, si sono ritrovate nel pallone, con solamente 2 possibilità:
- comprare un decoder DVB-T da collegare al vecchio TV ed utilizzare 2 telecomandi (TV + decoder), non capendo cosa fare su di uno o sull'altro;
- comprare un nuovo TV.
Sicuramente i mercati e gli interessi dei venditori di PPV (Pay Per View) sono stati largamente rispettati, ma quelli delle persone normali come il solito sono rimasti compressi in un angolo di un cassetto, imponendo loro spese necessarie per adeguare gli impianti, per i decoder o per i nuovi apparecchi TV. Un'altra bella osservazione potrebbe essere... ma perchè non sono stati obbligati i distrubutori di materiale elettronico a far pervenire sul mercato italiano solamente prodotti che supportassero il segnale DVB-T da quando si è venuti a conoscenza della rapida obsolescenza che avrebbero presentato gli altri prodotti? Forse è stato un modo per abbreviare i cicli di vita dei prodotti e vendere materiale in più che poi verrà buttato? Mah, ultimamente chi pensa bene rimane amareggiato e chi pensa male ha ragione... che mondo strano, per stare bene devi pensare da pessimista, ma vivere come se fosse tutto un sogno.
Qui in Italia ci è stato tutto venduto come un miglioramento, solamente lati positivi e nessuno negativo, ma anche io che mi sono divertito alla grande, e continuo ancora adesso, di lati negativi, tipo i costi e le difficoltà, ne ho visti... e chi non sa la differenza tra un segnale analogico ed uno digitale, e non ha una vista abbastanza buona da notare la nitidezza delle immagini, avrebbe preferito tenersi i soldi in tasca.
Ma adesso, dopo un po' di polemica, dato che chi dovrebbe organizzare le cose si sveglia sempre all'ultimo scaricando le colpe e prendendosi i meriti, veniamo alla seconda parte del discorso, ovvero linux ed il divertimento al quale mi riferivo.
Come tutti sanno, i computer si basano sull'elaborazione di dati digitali, quindi il "linguaggio" parlato dal DVB-T è congeniale all'utilizzo in ambito informatico. In linux il supporto al segnale digitale (terrestre, satellitare o via cavo) è fornito da molto tempo grazie ad una comunità molto attiva; sono stati sviluppati i driver ed i software per salvare ed elaborare il segnale, una volta catturato, con ottimi risultati, sia in termini di velocità, sia in termini di qualità... molto spesso i risultati sono migliori che su Windows, dove non sempre i processori riescono a gestire con efficienza l'elaborazione dei dati.
Quando si comprano dispositivi in grado di ricevere segnali DVB-T, vengono sempre corredati dal software Windows, ma non viene mai fatto riferimento a linux; questa modalità di vedere le cose, e largamente diffusa, è uno dei grossi freni a chi vorrebbe avvicinarsi a linux, ma è timoroso di non essere in grado di superare la sfida.
Io mi ero ritrovato ad aver acquistato nel 2006 un adattare USB ibrido, analogico/digitale, per guardare la TV sul portatile, ma le prestazioni lasciavano ampiamente a desiderare, rendendo i filmati scattosi, bloccando il computer durante la registrazione, sempre che ce la facesse, e lasciandomi molto frustrato. Siccome il computer che possedevo non era una "scarpa" per quei tempi, ho deciso di provare ad utilizzare linux per svolgere le stesse funzioni ed il risultato è stato di ottenere una piattaforma perfettamente fruibile, in grado di visualizzare e di salvare le trasmissioni TV. Da allora ho mandato in pensione Windows per quello che riguarda l'utlizzo del dispositivo ed ho trasformato il mio portatile in un televisore/videoregistratore.
Se l'argomento vi interessa continuate a seguirmi e spiegherò come configurare vari dispositivi.

Acquisti su ebay... come scegliere i venditori

Ora che ho spiegato come proteggere i propri pagamenti e che cosa è ebay, non ci resta che iniziare nel fare acquisti... ma c'è un ultimo argomento da trattare!
Quindi passiamo alle cose pratiche: come cercare di scegliere i venditori affidabili.
Su questo argomento si possono scrivere un sacco di cose e molte sono già state scritte... io provo a scrivere quelle derivanti dalla mia esperienza.
Il primo modo per scegliere un venditore è riguarda l'affidarsi solamente a coloro che accettano pagamenti tramite PayPal ed eseguire il pagamento solamente attraverso il sito di ebay con il tasto "Paga subito", in questo modo sarà possibile usufruire della protezione acquirente se offerta, e con venditori che hanno una buona affidabilità è sicura.
Altre regole generali sulla scelta del venditore riguardano lo studio degli oggetti che vende, il numero di vendite portate a termine e con quali risultati, le motivazioni dei feedback negativi rilasciati e, per concludere, una ricerca tramite google di possibili informazioni su di lui (questo solamente in caso di acquisti di un certo valore).
Il tipo di oggetti che ha venduto fino a questo momento e l'importo medio delle transazioni concluse fin'ora identificano il "campo" del venditore, se vediamo che cambia completamente genere e range di prezzi, aumentandolo, potremmo trovarci davanti a qualcuno che ha deciso di tentare il colpaccio per poi sparire con i nostri soldi...
Il numero di transazioni portate a termine la dice lunga su di un venditore e rappresenta la sua esperienza. Molte vendite all'attivo significano sicuramente una buona capacità di rapportarsi con gli altri utenti; venditori con più di 1000 transazioni in genere sono già abbastanza smaliziati e sicuramente cercano di evitare problemi ormai noti con gli acquirenti in maniera da massimizzare gli ingressi limitando il tempo dedicato alla risoluzione di problemi.
Il numero di feedback positivi, neutri o negativi la dice lunga sul suo comportamento... le percentuali sono importanti, ma non è l'unica cosa da osservare, molto importanti sono le motivazioni, da leggere e valutare... se un venditore ha preso all'ingrosso del materiale fallato, l'ha venduto non essendone a conoscenza ed una volta visti i risultati lo sostituisce, è quesi sicuro che si sia preso dei feedback negativi, ma questo non vuole dire che sia stato scorretto... in questo caso i feedback negativi rimangono concentrati su di una singola categoria di prodotti... se il prodotto in cui siete interessati ha ricevuto sempre dei feedback positivi potreste riuscire a far comunque un buon acquisto.
Questi ultimi suggerimenti riguardano l'esperienza che mi sono fatto acquistando materiale elettronico, informatico o vario dalla Cina o da Hong Kong (che in realtà è praticamente la stessa cosa, come spedire dall'Italia o da San Marino).
Per prima cosa, quando fate ricerche, non fidatevi se avete selezionato di prendere in considerazione solamente gli oggetti "Disponibili per l'Italia"; molti venditori spediscono in tutto il mondo tranne che in Italia, ma lo scrivono solamente all'interno del testo dell'inserzione. Quindi occhio agli oggetti che vi aggiudicate ed a leggere bene l'inserzione... a me è capitato di sbagliare ed in genere il venditore preferisce rimborsarvi in caso di pagamento eseguito piuttosto che prendersi il rischio di spedire in Italia.
Il mercato da quelle parti è in continua espansione, quindi è facile vedere nuovi venditori che cercano continuamente di imporsi con prezzi molto aggressivi; in genere questi venditori hanno pochi feedback, quindi ci si deve sentire in un certo senso "cavie" a fare acquisti da loro, ma se va bene sicuramente non vi lamenterete di aver pagato troppo poco l'oggetto... e se va male potete cercare di recuperare il vostro pagamento.
Molti prodotti hanno un prezzo irrisorio rispetto a quello che pagheremmo qui per lo stesso oggetto (e per stesso intendo proprio identico, comprese forme, serigrafie, etichette e fabbricazione rigorosamente "Made in China" per entrambi); per questo motivo molti venditori dichiarano che la spedizione è gratuita ed il valore a cui ci si aggiudica l'oggetto è già complessivo.
Alcuni venditori non eseguono spedizioni internazionali senza che queste siano assicurate o che abbiano un numero di tracciatura; come detto in precedenza mentre descrivevo ebay, quelli corretti lo inseriscono all'interno della sezione dettagli di spedizione, gli altri lo riportano all'interno del testo dell'inserzione.
In Cina si usa molto la bigiotteria od oggetti "preziosi" a prezzi d'asta veramente bassi, ma se si legge il testo completo dell'inserzione si trovano spesso spese aggiuntive di impacchettamento o di assicurazione non dichiarate all'interno dei dettagli di spedizione... secondo me questi venditori sarebbero da appendere per le orecchie, ma evidentemente o pochi si lamentano o per ebay non rappresentano un problema, quindi continuano ad imbrogliare in questo modo, piazzandosi in testa alle ricerche ordinate per prezzo+spedizione ed usurpando il posto a chi veramente se lo meriterebbe.
Ultima nota dolente riguarda l'acquisto delle memorie di massa da parte di venditori di quelle zone; spesso le SD ed i pendrive sono dei fake, quindi vengono venduti dichiarando una caratteristica che in realtà non è vera... qui è molto facile rimanere fregati, è successo anche a me, ma per fortuna c'è PayPal che mi ha rimborsato, io però ci ho rimesso le spese per rispedire indietro l'oggetto tramite posta raccomandata... unico caso in cui ci ho rimesso qualcosa.
Io non ho mai fatto acquisti di materiale con prezzo totale superiore ai 50 €, probabilmente per una forma di insicurezza latente che comunque rimane nella mia testa, ma per tutto il resto non mi sono fatto grandi problemi, realizzando ottimi acquisti a prezzi veramente bassi.
Non mi resta che augurarvi: "Buoni acquisti!"

mercoledì 11 novembre 2009

Acquisti online... come funziona ebay

Visto che in un altro post ho parlato dell'affidabilità e delle protezioni offerte per i sistemi di pagamento da utilizzare online al fine di mettervi a conoscenza delle garanzie offerte, ora provo a parlarvi di dove poter eseguire gli acquisti online con una discreta sicurezza... io per adesso vi ho dato le dritte per eseguire transizioni con il maggior numero di garanzie possibile.
Ma ora proseguiamo con ordine... perchè fare acquisti online, usufrunedo delle possibilità offerte dal commercio elettronico quando abbiamo i negozi sotto casa?
Le motivazioni possono essere molteplici, a partire dall'estendere il proprio parco acquisti, fino alle grandi opportunità di risparmio che ci vengono da prodotti acquistati all'estero, magari in mercati emergenti o grazie al cambio di valuta.
Molteplici sono anche le motivazioni che si possono addurre per non fare acquisti online; a partire dalla non conoscenza del venditore, non sapere a chi fare le proprie rimostranze se il prodotto non dovesse soddisfare le proprie aspettative per arrivare fino alla paura del tentativo di imbroglio da parte del venditore.
Una piccola introduzione sul più grande sito di vendite online è doverosa... il sito è ebay, lo si può considerare un mercato virtuale in cui i venditori possono vendere i loro oggetti tramite aste od inserzioni a prezzo fisso. Entrambi i tipi di inserzione sono di durata limitata nel tempo ed il valore a cui ci si aggiudica l'oggetto è pari al prezzo dell'oggetto da sommare ai costi di spedizione dove presenti; c'è da prestare attenzione al fatto che alcuni venditori richiedono che la spedizione sia assicurata o tracciata, quindi c'è da aggiungere questo costo, normalmente indicato a parte e nei dettagli sulla spedizione se il venditore è corretto (alcuni lo mettono all'interno del testo dell'inserzione, molto meno corretto e quindi è da cercare).
Il sistema di ebay, per valutare l'affidabilità dei partecipanti, si basa sui giudizi (feedback) lasciati tra gli utenti in seguito alle transazioni eseguite. I venditori valutano la correttezza degli acquirenti e dovrebbero rilasciare il feedback dopo aver ricevuto il pagamento in base alla precisione e velocità dell'acquierente e quest'ultimo dovrebbe rilasciare il feedback ed una valutazione una volta ricevuta e valutata la merce. Capita però alcune volte che il feedback all'acquirente non venga rilasciato finchè il venditore non ha ricevuto il suo, questo al fine di "barattare" un feedback positivo; questo comportamento non è corretto, ma sicuramente va molto meglio di una volta in cui l'acquirente poteva ricevere un feedback negativo anche se il suo pagamento era stato esemplare, ma non aveva voluto rilasciarlo positivo al venditore a causa di problemi. Logicamente ogni venditore che voglia far "crescere" il proprio negozio deve cercare di accontentare il cliente per evitare di ricevere giudizi negativi.
Io attualmente non ho molte transazioni all'attivo, solo una cinquantina circa e tranne i primi 3 oggetti pagati tramite bonifico (non avevo la carta di credito), tutti i successivi sono stati pagati tramite PayPal, prima utilizzando la ricarica del conto e successivamente con addebito diretto sulla carta di credito. Se operate in questo modo ricordate che i cambi di valuta, in caso di acquisti non in euro, possono essere gestiti tramite PayPal o tramite carta di credito, considerate che normalmente la commissione di PayPal è superiore a quella applicata dalla carta di credito, quindi i fondi conviene che vengano gestiti direttamente dalla carta di credito e l'addebito venga fatto con la valuta originaria e non in euro (conversione indispensabile se PayPal è appoggiato alle riceriche fatte tramite bonifico e non ad una carta di credito).
La maggior parte delle mie transizioni sono state eseguite con venditori stranieri e solamente un 10% con venditori italiani; tra gli stranieri posso dire che uno dei migliori che ho trovato era tedesco, poi vari inglesi, precisi e veloci, un irlandese che era un po' approssimativo e poco preciso, ma è andato tutto bene, ed infine un grande numero di cinesi.
Su questi acquisti ho aperto 7 contestazioni tramite PayPal, per quattro venditori, e tutte sono state chiuse a mio favore; quindi mi posso ritenere molto soddisfatto di come hanno funzionato le cose fin'ora. Qualcuno potrebbe sostenere che sono molti in percentuale gli acquisti non andati a buon fine, ma vi posso assicurare che le contestazioni aperte erano su prodotti veramente a buon prezzo e quindi ci ho provato... in fondo ho sempre recuperato i soldi e se il materiale mi fosse stato consegnato sarebbe stato un ottimo affare.

martedì 10 novembre 2009

Metodi di pagamento online... come tutelarsi

Se state leggendo questo post, evidentemente siete molto bravi nelle ricerche su internet (attaulmente non sono indicizzato dai motori di ricerca), e quindi è anche molto probabile che abbiate già superato molti dei preconcetti classici e della diffidenza che vivono le persone cresciute in Italia verso gli strumenti di pagamento elettronico (carte di credito e PayPal). Se però così non fosse e stiete a leggere questo post, significa che state incominciando ad interessarvi; questo è un buon segno e dimostra curiosità, magari per rivedere le vostre posizioni...
Adesso veniamo alle cose pratiche: come cercare di proteggersi e tutelarsi al meglio con gli attuali sistemi di pagamento; questo ci permetterà di provare a recuperare i nostri soldi in caso di problemi.
Partiamo con alcune precisazioni sulle carte di credito, queste sono di due tipi: tradizionali e ricaricabili. L'importante, per entrambi i tipi, è che sia possibile contestare gli addebiti per mancata ricezione della merce; da notare che la maggior parte delle carte ricaricabili non offre questa possibilità e normalmente ha dei costi di ricarica, quindi, in linea di massima, è meglio rivolgersi alle carte tradizionali anche se alcuni potrebbero obiettare che, in caso di furto dei dati, l'importo della truffa potrebbe arrivare ad essere pari al platfond della carta, ma, dalle condizioni contrattuali, se le perdite non sono dovute a dolo o non curanza, tutti gli importi dovrebbero venire rimborsati (attenzione alla presenza di una franchigia imposta da alcune società di credito).
Un ulteriore livello di protezione è offerto da PayPal, un conto elettronico virtuale, che può essere "caricato" tramite bonifico e che permette di collegare una o più carte di credito addebitando gli importi su queste. Il funzionamento è molto semplice e permette di eseguire transazioni economiche tra due clienti registrati su PayPal senza che questi scambino alcun dato relativo alla carta od al conto corrente. Oltre a questa protezione non possibile con i sistemi tradizionali, PayPal offre altre garanzie per gli acquisti, soprattutto se eseguiti tramite ebay dato che ci sono convenzioni particolari... in linea di massima, per acquisti fatti da venditori considerati affidabili tramite i sistemi di ebay, PayPal garantisce una protezione completa (prezzo dell'oggetto e delle spese di spedizione) sugli acquisti in caso di mancata consegna. I dettagli possono essere letti all'indirizzo https://www.paypal.com/helpcenter/main.jsp;?locale=it_IT&_dyncharset=UTF-8&countrycode=IT&cmd=_help&serverInstance=9020&t=solutionTab&ft=searchTab&ps=solutionPanels&solutionId=163256&isSrch=Yes.
La situazione tramite la quale io opero i pagamenti è un po' più complessa ed ottimizzata ai fini della sicurezza offerta e del risparmio, ora provo a spiegarvela.
Prima di tutto sono partito dall'aprire un conto PayPal e caricarlo tramite bonifico bancario, ma in questo caso potevo usufruire solamente della protezione PayPal, che si affida alla prova della spedizione in caso di oggetti non recapitati, in caso di spedizione non giunta a destinazione; se però il venditore potesse dimostrare l'avvenuta spedizione, PayPal riconosce l'affidabilità del venditore e l'acquirente riceve il torto e viene costretto a pagare. In seguito a questo ragionamento, ho deciso di appoggiare il conto ad una carta di credito, per avere la possibilità di eseguire un "rollback", ovvero contestare l'addebito alla società emittente della carta, inoltre volevo i vantaggi della carta prepagata, senza i suoi costi.. lo so, sono molto difficile di gusti, ma ho trovato il sistema per avere tutto questo tramite la seguente soluzione.
Ho due carte di credito, una prepagata (che permette la contestazione per merce non ricevuta) ed una tradizionale. Siccome entrambe le carte sono Visa e la mia banca permette di effetturare le ricariche della prepagata tramite la carta tradizionale senza pagare le commissioni, ho unito i vantaggi dei diversi sistemi: la protezione per mancata ricezione della merce in seguito alla contestazione, le ricariche senza alcuna commissione e il platfond massimo prelevabile è quello presente sulla carta ricaricabile (inoltre l'addebito della ricarica avviene il 15 del mese successivo all'acquisto).
A questo punto faccio acquisti in maniera abbastanza tranquilla avendo 2 livelli di protezione per la merce non consegnata e la sicurezza di non poter essere truffato oltre il valore presente sulla carta.
Per darvi comunque un'idea sull'affidabilità della protezione sugli acquisti fatti tramite ebay e garantita da PayPal, fin'ora non mi è mai capitato di dover ricorrere alla protezione offerta dalla carta di credito... tutti i casi sono sempre stati risolti da PayPal con la restituzione della somma pagata.

lunedì 9 novembre 2009

Blog o non blog, questo è il problema!

Dopo un po' di tempo passato a pensare all'utilità di un blog, alle possibilità future di tenerlo aggiornarto ed alla sua reale utilità per il valore aggiunto fornito, in un momento di probabile pazzia ho deciso di aprirlo.
Leggere i blog è una cosa che mi piace, raccolgo molte informazioni utili e stimoli pratici, ma scrivere lo ritengo molto complesso, ed avendone uno mio, ora, mi ritrovo anche a pensare al tempo da dedicargli per curarlo e farlo crescere; quindi da piacere non vorrei diventasse un obbligo, altrimenti mi perdo tutto il gusto, ma male che vada potrò dire: "Anche io ho avuto il mio blog..."
Adesso mi ritrovo già a farmi i problemi sul porimo post, come debba essere, di cosa debba trattare, se devo presentarmi o meno... e non essendo un grande comunicatore sono dubbi che hanno un buon peso.
Facendo una brevissima introduzione sulla mia vita e dicendo che sono nato tra gli anni '70 ed '80, che probabilmente ero uno di quei bambini che si faceva odiare sulle richieste del "perchè?" (lo faccio ancora adesso, ma per fortuna le basi ormai sono consolidate), che avendo sempre avuto una buona manualità ho potuto spesso dedicarmi allo smontare le cose per capirne il funzionamento, mi ritrovo ad essere il "titolare" di questo blog che presumibilmente sarà una raccolta delle più svariate informazioni di natura prevalentemente pratica e che potrebbero spaziare dall'informatica al fai da te ed a commenti di natura varia su altrettanto vari argomenti.
Considerando che sono un informatico con la passione del fai da te e dei mezzi a due ruote dovrei trovare molte cose su cui scrivere, senza contare le possibili riflessioni su fatti di cronaca ed ideologie.
Ah, piccola nota... se siete di quelle persone che pensano che imparare a fare qualcosa non ne valga la pensa se costa sforzi e fatica, che preferiscono pagare qualcuno per fare un lavoro perchè ne hanno poca voglia, che pensano che l'anima del commercio sia il consumismo e che le modalità dell'usa e getta, ormai diffusa in tutti gli ambiti, sia corretta... beh, è meglio che non leggiate quello che scriverò, non trovereste nulla di utile ai vostri fini; io cerco sempre di ridare nuova vita ad oggetti "vecchi" per poterli riutilizzare e/o di riparare le cose rotte che mi passano tra le mani.
Siete pronti ad intraprendere questo cammino con me e la mia immagine virtuale rappresentata dai miei post? Vabbè, se non siete pronti pazienza, io per intanto comincio ad abbozzare tutte le cose che mi passano per la mente e di cui voglio tenere traccia, e prima o poi le scriverò... e voi potrete leggerle.
Dimenticavo il DISCLAIMER!
Logicamente tutto quello che leggerete qui fa parte del mio bagaglio culturale, raramente ricopierò pedestralmente notizie da altre fonti e se così fosse riporterò la fonte.
Siccome pensieri ed idee non sono beni materiali, e sono facilmente copiabili come i bit, anche se ve ne approprierete io continuerò ad averli e saranno cose maturate nella mia testa, quindi fatelo pure; le uniche limitazioni a questa "selvaggia rapina" (il copyright fa scuola... ops, ho fatto polemica) sono relative al citarne la fonte e non utilizzarle a fini commerciali o per trarne profitto (se non vi faccio pagare io i miei pensieri, non troverei corretto che lo faceste voi con i miei).
Ultima cosa... tutto quello che leggerete nella maggior parte dei casi è stato fatto ai soli fini di studio e/o ricerca, quindi alcune informazioni potrebbero essere considerate illegali se usate per scopi diversi.
Ognuno è responsabile in proprio della messa in pratica delle informazioni qui reperite ed io non sarò in alcun caso ritenuto responsabile per danni a cose o persone che potrebbero scaturire dalle letture dei miei post (tipo il software commerciale... lo compri e lo prendi per com'è, se non funziona sono affari tuoi... ops, altra polemica).

P.S. non pensavo di essere così polemico... o forse è il mondo circostante che non difende gli interessi delle persone comuni? A voi l'ardua sentenza!