Utilizziamo per questi test:
a) un HP MiniServer dotato di due slot PCIe
b) due schede DVB-T linux compatibili

Per un cliente dotato di numerose postazioni utente e sedi distaccate abbiamo effettuato una serie di test funzionali al file di trasmettere in rete locale il maggior numero di canali del digitale terrestre.
La trasmissione avverrà senza ricompressione o alterazione del flusso e sfruttando i multicast offerti dalla loro infrastruttura.

E’ risaputo che la trasmissione dei flussi digitali avviene per blocchi di frequenze (Multiplexer) ed è quindi sufficiente sintonizzare una scheda su una di queste frequenze per ricevere, e potenzialmente trasmettere, tutti i flussi video e audio presenti in quello specifico multiplex.

Abbiamo valutato che con due schede DVB-T dotate di due sintonizzatori avremmo coperto un discreto range di canali senza saturare le risorse hardware a disposizione (CPU e banda).

Abbiamo scelto Ubuntu Server su piattaforma 64 con un setup minimo che comprenda i tools di sviluppo per linux.

Abbiamo acquistato due schede PCIe DBV-T/T2 T982 Dual Twin Tuner e le abbiamo installate nei due slot liberi del Microserver.

Abbiamo compilato i drivers della scheda video resi disponibili dal produttore insieme all’ultimo layer Multimediale del kernel di linux.

Collegate le quattro prese antenna e riavviato il Microserver le schede ci rendono quindi disponibili 4 diversi sintonizzatori.

Effettuiamo quindi una scansione dei canali:

scan /usr/share/dvb/dvb-t/ ... -u > channels.txt

Ottenendo:

CBBC Channel:505833330:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:620:621:4671
BBC Red Button:505833330:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:4479
BBC NEWS:505833330:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:640:641:4415
BBC THREE:505833330:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:4351
BBC TWO:505833330:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:610:611:4228
BBC ONE:505833330:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:600:601:4164
ITV1:481833330:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:520:521:8261
ITV2:481833330:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:530:531:8325
Channel 4:481833330:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:560:561:8384

Dove:
Column A is the channel name.
Column B is the frequency (in Hz) of the multiplex this channel broadcasts on. The channels will be grouped together in the file by multiplex, so the frequency won’t change on every line.
Column D is the bandwidth. In the UK it will almost certainly be 8MHz.
Column G is the phase modulation type for the channel. I won’t try to explain it (you can delve into Wikipedia for that), suffice to say you’ll need to know it later. This should be the same for each channel that broadcasts on the same multiplex.
Column M (the last one) is the SID (service identifier) for the channel. This is very important as it is what dvblast uses to identify which channel to broadcast. Note that this is not the same as the EPG channel number, which isn’t shown in the file.

Multiplex 1

;BBC News
239.255.1.80:5004 1 4415
;BBC One
239.255.1.1:5004 1 4164
;BBC Red Button
239.255.1.105:5004 1 4479
;BBC Three
239.255.1.7:5004 1 4351
;BBC Two
239.255.1.2:5004 1 4228
;CBBC Channel
239.255.1.70:5004 1 4671

If your network switches support multicast, pick a multicast address. There’s a long and detailed document from the IANA about picking one, but unless you are already using multicast on your network then you really just need to pick something in the 239.255.000.000-239.255.255.255 range, which is identified by the IANA as the Site-Local Scope. Anything in this range should work. I used 239.255.1.1 as shown below.
If your network doesn’t support multicast, or you don’t want to use it for whatever reason, then enter the broadcast address for your local subnet.

dvblast -a 0 -c /root/M1.cfg -f 505833330 -m qam_16 -b 8 -e

-a n tells dvblast to use tuner number n for this multiplex. Obviously, you can’t use each tuner more than one at any one time. Numbering starts at 0, not 1, you idiots.
-c nameoffile.cfg tells dvblast to use the config file you just write. It doesn’t matter where you save it.
-f 000000000 is where you specify the frequency for this multiplex. Remember how you noted that down from the scan listing earlier? You better have done, because next you’ll need…
-m qam_x the modulation type for this multiplex. And then…
-b n the bandwidth for this multiplex.
-e Finally, -e tells dvblast to also stream the EPG data. You’ll see how to use this in VLC later, and it’s very exciting. No, really. Shut up, it’s exciting, damnit.

Dopo alcuni test abbiamo scelto di utilizzare singoli indirizzi IP per ogni canale invece di utilizzare lo stesso ip con porte diverse al fine di mantenere sotto controllo la banda utilizzata.
Infatti utilizzando lo stesso ip per tutti i canali si otteneva una ricezione da parte del client connesso di tutto il flusso dati emesso dal server e non del solo flusso relativo al canale desiderato.

Abbiamo poi implementato la trasmissione ciclica di filmati in diversi formati (MPEG4, H264, MPEG2) utilizzando VLC

vlc -vvv file:////path/to/file --sout '#rtp{access=udp,mux=ts,dst=224.3.1.100,port=1000,sap,group="Video",name="Test Multicast 1"}'

Dovrebbe anche essere possibile definire in ingresso un flusso dati (RadioWeb ad esempio) ed effettuarne il Multicast in rete, come dovrebbe essere possibile ricodificare il flusso audio/video all’interno dello stesso comando.
Funzioni che testeremo alla prima necessità.

Radio24 http://shoutcast.radio24.it:8000/

Riferimenti:
LINK
LINK
LINK
LINK
LINK
LINK

A.Gagliardi 2014

In questo articolo verrà descritto come configurare un mail server con domini virtuali che utilizzi  SSL – TLS- SASL.

Esiste molta documentazione in rete ma non così chiara e utilizzabile.

Per questa configurazione abbiamo utilizzato una distribuzione Gentoo linux:

  1. Postifix
  2. Courier-imap
  3. Cyrus-sasl
  4. Postgrey
  5. Amavisd new
  6. Spam assassin
  7. Clamav

Nome Dominio = example.com

utente = utente@example.com

Tralascerò la configurazione della parte antispam e greylist che è ben documentata in rete.

Mi dedicherò solo a descrivere i vari passi per la configurazione di un mail server che utilizzi SSL – TLS – SASL.

Passo 1

Installazione dei pacchetti minimi necessari

postfix  USE=”sasl”

cyrus-sasl  USE=” -mysql  authdaemond”

courier-imap USE=”berkdb fam gdbm”

Per questo server di posta virtuale userò come backend utenti imap authuserdb

e definirò gli utenti/dominio in postfix usando semplici file di testo (vmailbox per utenti ).

Passo 2

Configurazione imap e in particolare imap-ssl

Creazione utente imap:

>usererdb utente set uid=vmail gid=vmail home=/home/domini-posta/example.com/utente mail=/home/domini-posta/example.com/utente (definisco la entry nel db locale imap)

>userdbpw -md5 | userdb utente set systempw (setto la password)

>makeuserdb (abilito le modifiche)

Ho così creato l’utente imap e definito la relativa password.

Creazione certificati ssl self signed

Per questa parte ho seguito un Howto Ubuntu , ho creato i certificati nella directory /etc/ssl/private/

>openssl req -x509 -newkey rsa:1024 -keyout “/etc/ssl/private/mail.example.com.pem” -out “/etc/ssl/private/mail.example.com.pem” -nodes -days 3650
>openssl req -new -outform PEM -out “/etc/ssl/private/mail.example.com.crt” -newkey rsa:2048 -nodes -keyout “/etc/ssl/private/mail.example.com.key” -keyform PEM -days 3650 -x509

Durante questa fase verranno richiesti dei dati,  fondamentale è il common name che deve essere uguale al dominio nel mio caso CN=example.com

>chmod 644 /etc/ssl/private/mail.example.com.*

Creazione file /etc/courier-imap/imap-ssl allego il contenuto

#############################

SSLPORT=993
SSLADDRESS=0
SSLPIDFILE=/var/run/imapd-ssl.pid
SSLLOGGEROPTS=”-name=imapd-ssl”
IMAPDSSLSTART=YES
IMAPDSTARTTLS=YES
IMAP_TLS_REQUIRED=0
COURIERTLS=/usr/sbin/couriertls
TLS_KX_LIST=ALL
TLS_COMPRESSION=ALL
TLS_CERTS=X509
TLS_CERTFILE=/etc/courier-imap/mail.example.com.pem
TLS_TRUSTCERTS=/etc/ssl/certs
TLS_VERIFYPEER=NONE
TLS_CACHEFILE=/var/lib/courier/couriersslcache
TLS_CACHESIZE=524288
MAXDAEMONS=40
MAXPERIP=10
MAILDIRPATH=Maildir
MAILDIR=.maildir
MAILDIRPATH=.maildir
################################

Oltre all’imap-ssl ho abilitato anche l’imap standard porta 143 in localhost  solamente, sfrutterò l’imap non ssl per la verifica dei login del demone sasl usando il metodo rimap (vedi sotto).

Passo 3

Configurazione cyrus-sasl

ho inserito in /etc/sasl/smtp.conf

###############################

log_level: 1
pwcheck_method:saslauthd
mech_list: PLAIN LOGIN

###############################

ho inserito in /etc/conf.d/saslauthd

#########################################

SASLAUTHD_OPTS=”${SASLAUTH_MECH} -a rimap -r” -> sasl sfrutta l’imap per la verifica utenti
SASLAUTHD_OPTS=”${SASLAUTHD_OPTS} -O 127.0.0.1″ -> attivo solo in localhost
SASLAUTHD_OPTS=”${SASLAUTHD_OPTS} -n 5″

#########################################

Passo 4

Configurazione Postfix

Alla configurazione di base e ben documentata di virtual mail host in file ho aggiunto la parte inerente il TLS e SASL autentication.

Dopo aver inserito l’utente nel file /etc/postfix/vmailbox

#####################################

utente@example.com   example.com/utente/

#####################################

eseguo

> postmap /etv/postfix/vmailbox

A questo punto configuro il file /etc/postfix/main.cf aggiungendo la parte inerente TLS e SASL

 

#############################

# Virtual host

virtual_mailbox_domains = example.com
virtual_mailbox_base = /home/domini-posta
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_alias_maps = hash:/etc/postfix/virtual

#SASL
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain =

# TLS
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_tls_received_header = yes
smtpd_tls_cert_file = /etc/ssl/private/mail.example.com.crt
smtpd_tls_key_file = /etc/ssl/private/mail.example.com.key
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_loglevel = 1
tls_random_source = dev:/dev/urandom

#############################

Ho tralasciato tutta la parte di configurazione antispam e greylist ampiamente documentata in rete e di facile applicazione.

 

A questo punto configuro il file /etc/postfix/master.cf abilitando:

################################################

smtps     inet  n       –       n       –       –       smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_reject_unlisted_recipient=no
-o smtpd_client_restrictions=$mua_client_restrictions
-o smtpd_helo_restrictions=$mua_helo_restrictions
-o smtpd_sender_restrictions=$mua_sender_restrictions
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING

##################################################

 

A questo punto dovrebbe essere tutto attivo e funzionante.

Abbiamo configurato un server di posta con imap-ssl porta 993 default,   smtps porta 465 default, TSL e SASL per spedizione mail autenticata.

Io ho fatto dei test di spedizione e ricezione mail usando thunderbird e tutto fila liscio.

Dai log del server mail è possibile verficare l’utilizzo di TLS e verificare che il traffico non sia in chiaro.

Per i certificati , quelli da me usati sono selfsigned, dovrete accettarli lato client come attendibili.

 

 

 

 

 

 

 

 

Mi è capitato di dover effettuare un backup di un volume LVM di una macchina guest in ambiente virtualizzato (kvm-proxmox) subito dopo un aggiornamento che ha reso la proxecura automatica (vzdump inefficace a seguito di questo errore:

INFO: starting new backup job: vzdump 103 --mode snapshot --storage BACKUP
INFO: Starting Backup of VM 103 (qemu)
INFO: status = running
INFO: backup mode: snapshot
INFO: ionice priority: 7
INFO: skip unused drive 'local:103/vm-103-disk-1.raw' (not included into backup)
INFO: creating archive '/VM/BACKUP/dump/vzdump-qemu-103-2014_06_06-12_19_45.vma'
unable to connect to VM 103 socket - No such file or directory
ERROR: unable to connect to VM 103 socket - No such file or directory
INFO: aborting backup job
ERROR: Backup of VM 103 failed - unable to connect to VM 103 socket - No such file or directory
INFO: Backup job finished with errors
job errors

Prima di riavviare la macchina host, come consugliato dal forum, ho preferito effettuare un backup dei dati seguendo questa procedura.

Prima di tutto installo i pacchetti necessari:

#apt-get install ntfsprogs kpartx

Poi attivo uno snapshot per il volume NETLITE-vm–131–disk–1:

#lvcreate -L 1G -s -n 131-snap /dev/mapper/NETLITE-vm--131--disk--1

A questo punto ho un’immagine consistente del disco ma non è possibile usare tools come ntfsclone direttamente in quanto la partizione del disco NTFS non è presente in /dev/mapper, quindi la rendo visibile con:

#kpartx -a /dev/NETLITE/131-snap

Ed effettuo il backup:

#ntfsclone -s /dev/mapper/NETLITE-131--snap1 -o /mnt/pve/BACKUP_NFS/131-ntfs_clone.img
ntfsclone v2012.1.15AR.5 (libntfs-3g)
NTFS volume version: 3.1
Cluster size       : 4096 bytes
Current volume size: 34348736512 bytes (34349 MB)
Current device size: 34348737024 bytes (34349 MB)
Scanning volume ...
100.00 percent completed
Accounting clusters ...
Space in use       : 4282 MB (12.5%)
Saving NTFS to image ...
100.00 percent completed
Syncing ...

A questo punto ho una copia “ottimizzata” del filesystem e posso rimuovere puntamenti e snapshot:

#kpartx -d /dev/NETLITE/131-snap
#lvremove /dev/mapper/NETLITE-131--snap
Do you really want to remove and DISCARD active logical volume 131-snap? [y/n]: y
Logical volume "131-snap" successfully removed

A.Gagliardi 2014