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.