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.

Nessun commento:

Posta un commento