Profili Colore

Utilizzando dispcalGUI e ArgyllCMS unitamente allo Spyder 3 Elite sono riuscito ad evitare il tool nativo di DataColor che ho sempre trovato poco adatto alle mi esigenze.

Basta installare ArgyllCMS [LINK] scompattando lo ZIP in C:\ ad esempio.
Poi si installa dispcalGUI [LINK] e si inserisce il path relativo all’ArgyllCMS appena scompattato.

E’ anche possibile installare i drivers USB specifici per lo spyder3, per fare questo basta cambiare drivers per il dispositivo andandoli a trovare nella directory dove si è appena scompattato ArgyllCMS.
Per alcuni sistemi operativi è necessario riavviare in modalità priva di verifica delle firme dei drivers (Windows 8 ad esempio).

Ultimata l’installazione sarà possibile calibrare il monitor, la procedura è molto lenta e saranno necessari 30/40 minuti per una calibrazione accurata.

Al riavvio dispcalGUI si occuperà di applicare il profilo colore.
Consiglio di disabilitare il modulo persistence di Intel (igfxpers) che facendo esattamente la stessa cosa può entrare in contrasto disinstallando il profilo colore appena installato.

dispcalGUI

Qui di seguito alcuni profili colore già elaborati:

Lenovo Yoga 2 13 (FHD) LP133WF2-SPA1 2014-12-23 0.3127x 0.329y sRGB M-S 1xCurve+MTX
Dell 2005FPW 2005FPW 2012-10-20 130cdm² D6500 2.2 HQ 3xCurve+MTX
Samsung 700Z 700Z 2012-10-21 130cdm² D6500 2.2 HQ 3xCurve+MTX

andrea

Seguendo questa guida è possibile installare l’ambiente di sviluppo e test di Cordova/Phonegap.

Si installa preventivamente lo JDK a 64 bit dal sito di Oracle [LINK]

Si installa anche lo SDK per Android dal sito di specifico [LINK] avendo cura di installare le API corrette (attualmente la versione 19) e l’emulatore HAXM per Intel x86 disponibile opzionalmente negli Estras.
Una volta ultimata la procedura andate in /extras/intel/Hardware_Accelerated_Execution_Manager/ ed eseguite IntelHAXM.exe seguendone le istruzioni.

Ultimo passo l’installazione di ANT. Si scarica la versione binaria da QUI e la si estrae in una directory a piacere.

Bisogna scegliere il PATH per l’installazione dell’SDK per Android e di ANT e poi inserire questo PATH nella variabile d’ambiente corretta.
In impostazioni di sistema avanzate ho aggiunto:

PATH %ANT_HOME%\bin;%ANDROID_HOME%\tools;
ANDROID_HOME C:\Users\user\Desktop\cordova\android-sdk
ANDROID_SDK C:\Users\user\Desktop\cordova\android-sdk
ANT_HOME C:\Users\user\Desktop\cordova\ant

Si installa Node.js e nel command prompt di amministratore si digita:

 npm install -g cordova 
oppure
 npm update -g cordova 
per aggiornare.

A questo punto si crea una directory per i progetti e si crea il nuovo progetto:

 cordova create workshop com.yourname.workshop Workshop 
 cd workshop 
cordova platforms add android
cordova plugin add org.apache.cordova.device
cordova plugin add org.apache.cordova.console

E si compila e testa su di un dispositivo connesso tramite USB con:

 cordova run android 

Mentre per usare l’emulatore basta:

 cordova emulate android 

A questo punto dovrebbe partire la procedura di build ed al termine dovrebbe essere effettuato il boot dell’emulatore per testare l’applicazione.

andrea

Dopo qualche ricerca, pur non apprezzando affatto il codice non in chiaro, ho utilizzato questo progetto per la gestione di molteplici versioni di PHP in un server virtualizzato dedicato all’hosting e gestito tramite Virtualmin .

https://github.com/phpbrew/phpbrew
[code]
Scarico ed installo lo script:
[code]
wget https://raw.github.com/c9s/phpbrew/master/phpbrew
chmod +x phpbrew
mv phpbrew /usr/local/sbin/phpbrew

Si inizializza il sistema:

phpbrew init
export PHPBREW_ROOT=/opt/phpbrew
source ~/.phpbrew/bashrc

E si installa la versione desiderata:

apt-get install libmcrypt-dev
phpbrew install php-5.4.13 +default +mysql +gettext +mcrypt +intl +iconv +ftp +exif +dba +openssl +soap +apxs2=/usr/bin/apxs2 -- --with-libdir=lib/x86_64-linux-gnu --with-gd=shared --enable-gd-native-ttf --with-jpeg-dir=/usr --with-png-dir=/usr --enable-wddx --with-mysql-sock=/var/run/mysqld/mysqld.sock

Tutto quanto necessario viene salvato in /opt/phpbrew e per renderlo visibile a webmin basta creare una directory e fare un link simbolico:

mkdir /opt/rh/
ln -s /opt/phpbrew/php/php-5.4.14 /opt/rh/php54

A questo punto andando nella console di Webmin in System Settings -> Re-Check Configuration il sistema ricerca le versioni di php presenti e le rende accessibili per virtualhost in Server Configuration -> PHP Versions.

andrea

Proxmox firewall sul Bridge esterno

A volte c’è la necessità di esporre direttamente su internet alcune VM utilizzando un bridge sull’interfaccia esterna.

Di default il bridge non fa transitare i pacchetti da netfilter quindi non è possibile implementare alcun controllo di sicurezza.

Per ovviare a questo comportamento basta attivare questa funzione con:

echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables

e per rendere definitive le modifiche, inserire in /etc/sysctl.conf:

net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-arptables = 1

a questo punto i pacchetti transiteranno dalle catene standard e sarà possibile attivare singolarmente le porte in ingresso ed in uscita utilizzando il modulo di controllo sull’interfaccia fisica:

iptables -A FORWARD -m physdev --physdev-out veth201.0 -m multiport -p tcp --dports 80 -j ACCEPT
iptables -A FORWARD -m physdev --physdev-in veth201.0 -m multiport -p udp --dports 53 -j ACCEPT
iptables -A FORWARD -m physdev --physdev-in veth201.0 -m multiport -p tcp --dports 80 -j ACCEPT

andrea

Avendo la necessità di configurare una VPN verso apparecchiature FORTINET abbiamo rilevato alcune criticità e le abbiamo risolte con questo semplice script.

#!/usr/bin/expect -f
set timeout -1
spawn ./forticlientsslvpn_cli --server vpn.xxxx.xx:10443 --vpnuser user
expect "Password for VPN:" {send -- "password\r"}
expect "to this server? (Y/N)\r" {send -- "y\r"}
expect eof

Oppure questo:

#!/usr/bin/expect -f
spawn ./forticlientsslvpn_cli --server : --vpnuser  2>&1
log_user 0
send_user "Logging in\n"
expect "Password for VPN:"
send "\n"
# i needed ths for 'certificate error'
expect "Would you like to connect to this server"
send "Y\n"
send_user "Beginning to connect\n"
expect "STATUS::Tunnel running"
send_user "Tunnel running!\n"
# this is how long the next expect waits for pattern match, in seconds
set timeout 90001
expect "STATUS::Tunnel closed"
send_user "Tunnel closed!\n"
send_user "Dying\n"
close
exit

Potrebbe essere necessario installare il ppp, expect e le librerie di compatibilità per eseguibili a 32 bit.

apt-get install ppp
apt-get install expect
apt-get install lib32stdc++6

Qui il LINK per scaricare il client.

Andrea

PROXMOX Tablet Pointer vs vmMouse

Nelle macchine virtuali KVM di proxmox è prevista l’integrazione del mouse tramite la specifica voce nel pannello delle Opzioni.

proxmox options panel

Rimuovendo questa funzione nella console remota VNC si ha un fastidioso effetto di sdoppiamento del mose.

Il vantaggio della rimozione sta in un piccolo miglioramento delle performance, vedrete che una VM Windows a riposo consuma 3/4% di cpu mentre dopo la modifica il consumo scende all’1%.
Con molte macchine Windows virtualizzate la differenza di vede.

Per riallineare i mouse del client e della VM basta installare il driver per il mouse di vmWare qui:
Versione A (testata su windows XP 32 bit)
Versione B (testata su windows 2003 32bit)
Versione C (non testata)

La procedura per estrarre i drivers è la seguente.

Scaricate dal sito di vmWare il driver desiderato DA QUI.

Eseguite il comando per la scompattazione, ed esempio:

VMware-tools-9.4.10-2068191-i386.exe /A /P C:\Extract

Questo genererà una directory in C: che conterrà in VMWARE … Drivers anche i drivers per il mouse.

A questo punto basta togliere il supporto per il tablet da Proxmox e provvedere all’installazione dei drivers.

andrea

Microserver N54L Firmware 2013

Purtroppo l’accesso il firmware dei Microserver HP è stato ristretti ai sottoscritto di di un contratto di assistenza attivo.
Questo è chiaramente fastidioso e francamente incomprensibile.
Per questo motivo qui di seguito trovate i files originali più un firmware modificato che permette di avere un BIOS più personalizzabile e permette di sbloccare la velocità delle ulteriori due porte SATA presenti a bordo per chi vuole utilizzarle con set di dischi superiore a 4.

Una volta utilizzato il tool HP per creare l’USB stick con autoboot potete effettuare il flash del firmware (non viene richiesta interazione umana per cui è possibile effettuare l’operazione su di un NAS senza monitor e tastiera).

Potete anche sosituire sull’USB stick il file del Firmware con questo:

O41100113.ROM

presente nel file zip per avere le funzionalità aggiuntive (testato su un N45L).

Download Firmware HP N54L

Andrea

Linux e il RAID Software (Tips)

Questo script calcola i settaggi raccomandati per la creazione di filesystem ext2, etx3 e ext4 su device RAID.

RAID level
Number of physical disks
RAID chunk size (in KiB)
number of filesystem blocks (in KiB)

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 = [email protected]

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

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

[email protected]   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.