Disclaimer per i contenuti del Blog


DISCLAIMER:Questo blog non rappresenta una testata giornalistica in quanto viene aggiornato senza alcuna periodicità . Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n° 62 del 7.03.2001.
L'autore non è responsabile per quanto pubblicato dai lettori nei commenti ad ogni post. Verranno cancellati i commenti ritenuti offensivi o lesivi dell’immagine o dell’onorabilità di terzi, di genere spam, razzisti o che contengano dati personali non conformi al rispetto delle norme sulla Privacy. Alcuni testi o immagini inserite in questo blog sono tratte da internet e, pertanto, considerate di pubblico dominio; qualora la loro pubblicazione violasse eventuali diritti d'autore, vogliate comunicarlo via email. Saranno immediatamente rimossi. L'autore del blog non è responsabile dei siti collegati tramite link, del loro contenuto che può essere soggetto a variazioni nel tempo ne degli eventuali danni derivanti dall'utilizzo proprio od improprio delle informazioni presenti nei post.

mercoledì 30 aprile 2014

Un esperimento per ridurre il disturbo da "Referer Spam"

Qualunque utente della piattaforma Blogger (e probabilmente di altre) ha prima o poi avuto a che fare con il problema del "Referer Spam", siti che accedono al nostro blog, probabilmente a mezzo bot, falsando le statistiche di accesso e generando traffico inutile, tra questi posso citare vampirestats.com, 7secretsearch.com, www.adsensewatchdog.com, zombiestat.com e probabilmente molti altri.

La cosa in se non è particolarmente grave ma mi disturba avere improvvisi picchi di accessi (falsi) ogni volta che pubblico un nuovo post.

Per ovviare a questo "problema" ho realizzato un piccolo modulo JavaScript che, almeno apparentemente (è in linea da dicembre 2013), ha fatto si che il mio Blog sia diventato poco appetibile/interessante per i suddetti cialtroni.

La sua struttura è molto semplice:

//------------------------------------------------------------------
// Stop unwanted referer and redirect the browser to google
//------------------------------------------------------------------
var IncomingReferrer = document.referrer;
if (IncomingReferrer !=="") {
 var UnWanted = ["http://vampirestat.com", 
     "http://7secretsearch.com",
     "http://www.adsensewatchdog.com",
     "http://zombiestat.com"];
 for (var i = 0; i < UnWanted.length; i++) {
  if (IncomingReferrer.substr(0,UnWanted[i].length) == UnWanted[i]) {
   i=100000;
  }
 }
 if (i>100000) {
  document.write('<script type="text/undefined">')
  location.href = "http://www.google.com";
 }
}

Non faccio altro che verificare se il referrer è tra quelli presenti nella black-list "UnWanted" e se il test è positivo redirigo il browser vero un'altra URL, in questo caso google.com, di fatto interrompendo il caricamento della pagina del blog.

Lo script va posizionato immediatamente dopo il tag <HEAD>


e questo si può fare andando su Modello/Modifica HTML


Può darsi che il mio Blog non sia più stato visitato dai bot in quanto ritenuto poco interessante o può darsi che lo script abbia sortito il suo effetto, sta di fatto che se a qualcuno va di provare ad apportare la stessa modifica, sarò lieto di ricevere feedback a riguardo.

NOTA del 1/5/2014
Corretto errore di digitazione:  "if (i=100000) {" va modificato in " if (i>100000) {"


lunedì 28 aprile 2014

Internet Explorer: nuova vulnerabilità.

Sono trascorsi solo 18 giorni dal termine del supporto per Windows XP ed ecco che ci ritroviamo con la prima vulnerabilità che probabilmente non verrà mai corretta (almeno per IE8 e precedenti).

E' notizia dell'altro ieri: su Microsoft Security TechCenter è uscita una nota relativa ad una vulnerabilità di Internet Explorer (versioni 6, 7, 8, 9, 10 ed 11) che permetterebbe l'esecuzione di codice arbitrario qualora l'utente dovesse incappare in siti sviluppati per lo sfruttamento di tale falla (https://technet.microsoft.com/library/security/2963983).

Microsoft ha dichiarato di essere già al lavoro per la correzione della falla ma probabilmente tale correzione NON interesserà gli utenti di Windows XP che, di fatto, rimarranno esposti a tale tipo di attacco.

Iniziamo bene :(

lunedì 7 aprile 2014

Una gita su Monte Circeo

Oggi voglio sottoporre alla vostra attenzione una passeggiata, per alcuni brevi tratti mediamente impegnativa, in un luogo fantastico: il monte Circeo.

Riepilogo del percorso

Importante

Iniziamo con il dire che, a causa di alcuni tratti con sentiero stretto e pareti a strapiombo, sconsiglio caldamente l'escursione a chi soffre di vertigini ed ai bambini. Sono obbligatorie scarpe robuste ed adatte all'utilizzo su sterrati, consiglio di portare una buona riserva d'acqua da bere, i bastoncini sono stati più d'impaccio che d'aiuto, alcuni brevissimi passaggi in zone rocciose (solo un paio, per fortuna) sono stati percorsi a "4 zampe" (fortunatamente schiena allo strapiombo seguendo il senso da noi scelto).

Il percorso

Si parte da una piccola area di parcheggio vicina ad un ristorante (posizione 41.246837, 13.037103 o 41°14'48.6"N 13°02'13.6"E) . Tutto il sentiero è quasi sempre perfettamente indicato con segni rossi. Purtroppo non siamo riusciti a completare il giro pianificato a causa dell'eccessivo tempo impiegato per percorrere la parte più alta (sconsiglio caldamente il giro a tutti coloro che soffrono di vertigini dal momento che per diverse centinaia di metri il sentiero è abbastanza stretto con vista mozzafiato e lati a strapiombo).

La prima parte, quella più a nord, si svolge all'interno di un bosco rigoglioso ed ombreggiato; ciclamini e sugheri la fanno da padrone.

La prima parte del percorso, semplice e fresca.

Un esemplare giovane di Sughero
Un vecchio Sughero capitozzato


Ciclamini selvatici

Sembra un luogo fuori dal tempo...
Scendendo verso sud il panorama cambia abbastanza rapidamente, si esce dal bosco e la vegetazione diventa bassa e rada, tipica delle zone aride ed percorso resta comunque abbastanza agevole da percorrere. La parte a mio parere più impegnativa è quella che si incontra sulla cima ma ne vale sicuramente la pena.

Il golfo tra Circeo e Terracina

Il lago di Paola

Uno sguardo verso nord...
La discesa è stata leggermente impegnativa a causa del materiale incoerente presente lungo tutto il tratto, aggravata dal tramonto ormai iniziato da diverso tempo e dall'inclinazione del sentiero (date una occhiata al profilo altimetrico dell'ultimo tratto). L'ultima parte del percorso siamo stati costretti a percorrerla alla luce delle torce ma oramai eravamo quasi arrivati in pianura.

Risorse

Per chi volesse ripetere questa bellissima esperienza questo è il percorso su ViewRanger, qui su Google Maps ed il file GPX da scaricare sul proprio GPS.

venerdì 4 aprile 2014

Un server LAMP con il Raspberry PI - Step 1 - Il server Web

Anche sul piccolo Raspberry PI è possibile installare tutto il necessario affinché possa essere essere utilizzato come server LAMP.

I software che dovremo installare saranno Apache2, PHP5, MySQL e
VSFTP.

In questo primo post affronteremo l'installazione di Apache2 e del supporto al linguaggio PHP con un paio di step di verifica del funzionamento del software installato.



Iniziamo con Apache2:

   sudo apt-get install apache2

al termine dell'installazione andiamo a modificare i permessi della cartella nella quale andremo a mettere i nostri files html (in una situazione di produzione eviterei caldamente questa operazione che, di fatto, abbassa al minimo la sicurezza rendendo scrivibile per CHIUNQUE la cartella stessa):

   sudo chmod 777 /var/www
   sudo chmod 777 /var/www/index.html

Possiamo ora verificare il funzionamento del server Web (attenzione, faccio riferimento all'indirizzo del PI utilizzando rpi.local e non l'indirizzo IP in quanto ho precedentemente eseguito i step indicati in questo post):


A questo punto aggiungiamo PHP5 (step opzionale, se non useremo mai pagine in PHP è inutile installarlo):

   sudo apt-get install php5

al termine dell'installazione creiamo un piccolo script PHP per verificare il funzionamento del server:

   nano /var/www/phptest.php

e all'interno dell'editor inseriamo queste tre righe:

<?php
   phpinfo();
?>

CTRL+X / S / ENTER per salvare.


Anche PHP funziona :)

Accedere al Raspberry PI via rete senza utilizzare il suo IP

Per accedere via rete al PI dobbiamo sapere quale sia il suo indirizzo IP. Se abbiamo configurato l'adattatore per ricevere un indirizzo IP valido dal server DHCP, a meno di particolari configurazioni del server DHCP (solitamente integrato nel router), non avremo mai la certezza di quale indirizzo sia stato assegnato.

Un sistema abbastanza semplice per risolvere il problema è l'utilizzo sul PI di un servizio che pubblichi in rete le informazioni delle quali abbiamo bisogno, ad esempio l'hostname, così da accedere al PI utilizzando il suo nome invece del suo indirizzo.

Il servizio che permette di svolgere questa funzione (Multicast DNS Service Discovery) si chiama Avahi. I sistemi Apple (Mac, iPhone, iPad, iPod) lo utilizzano di default (per es. AirPrint sfrutta proprio questo protocollo per la ricerca delle stampanti presenti nella subnet), per i sistemi Windows ci sarà bisogno di installare un piccolo modulo (peraltro non necessario se sul nostro PC abbiamo già installato iTunes... mai sentito parlare del servizio Bonjour???).

Ma ritorniamo al PI. Prima di tutto andiamo ad impostare l'hostname del PI; il suo default è raspberrypi ma per pigrizia ho deciso di accorciarlo a rpi. Possiamo modificare l'hostname utilizzando

   sudo raspi-config

andando su Advanced Option/Hostname ed impostando quello che più ci aggrada avendo cura di fare reboot al termine

Ora che l'hostname è impostato verifichiamo se Avahi è già installato sul nostro PI (chi ha correttamente installato un dongle BT probabilmente ha già il servizio installato ed attivo):

   service avahi-daemon


in questo caso il servizio è già presente altrimenti avremmo ricevuto un messaggio di errore tipo:
avahi-daemon: unrecognized service.

Se Avahi non è installato possiamo procedere con:

   sudo apt-get update
   sudo apt-get upgrade
   sudo apt-get install avahi-daemon

Al termine dell'installazione

   sudo reboot

per far si che tutto parta automaticamente. A questo punto il PI è a posto e non sono necessarie ulteriori configurazioni.

Se abbiamo un Apple abbiamo finito, mentre se abbiamo un PC Windows (senza iTunes installato) dobbiamo provvedere al setup del servizio Bonjour; il pacchetto lo si può trovare su http://support.apple.com/kb/DL999?viewlocale=it_IT. Una volta installato il software il PI sarà finalmente accessibile:


Nell'esempio riportato l'errore "connessione rifiutata" dipende dal fatto che non c'e' un server FTP sul PI, infatti tentando di accedere ad un host inesistente il messaggio di errore è ben diverso...

Rete wireless per il Raspberry PI

Perchè non svincolare il nostro PI dal cavo ethernet e connetterlo ad internet utilizzando un dongle WiFi USB?

L'operazione è molto più semplice di quanto possa sembrare a patto che si rispettino un paio di regole legate all'hardware ed al software del nostro PI.

Dal momento che le porte USB del Raspberry PI non sono in grado di fornire più di 140mA, la prima regola da rispettare è di acquistare un HUB USB alimentato ed utilizzarlo per connettere il dongle WiFi o, in alternativa, utilizzare uno shield che fornisca porte USB aggiuntive in grado di fornire la corrente richiesta. Ho provato entrambe le soluzioni senza alcun problema. Qualora optaste per l'HUB USB alimentato potreste utilizzarlo anche per alimentare il PI.

La seconda regola da rispettare riguarda la scelta del dongle: per eseguire una configurazione hassle free è bene acquistare uno dei dongle presenti nella lista di compatibilità hardware relativa agli adattatori WiFi. Io ho scelto un dongle della TP-Link TL-WN727N, l'ho connesso all'HUB USB e il SO (Raspbian Wheezy aggiornato a marzo 2014) l'ha riconosciuto senza ulteriori interventi.


Passiamo ora alla configurazione del software, colleghiamoci al PI in modalità console, ed iniziamo ad editare il primo file, quello relativo all'elenco delle interfacce:

   sudo nano /etc/network/interfaces

dobbiamo completare le informazioni relative all'adattatore wlan0 in modo che il blocco relativo abbia i seguenti parametri:

   auto wlan0
   allow-hotplug wlan0
   iface wlan0 inet manual
   wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

CTRL+X / S / INVIO per salvare il file.

A questo punto dobbiamo fornire le informazioni di autenticazione per l'adattatore appena configurato:

   sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Il file dovrebbe già contenere le seguenti righe

   ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
   update_config=1

alle quali aggiungeremo

   network={
   ssid="<SSID>" 
   psk="<PASSWORD_WPA>"
   proto=WPA
   key_mgmt=WPA-PSK 
   pairwise=TKIP
   auth_alg=OPEN
   }

avendo cura di sostituire <SSID> con il vostro SSID e <PASSWORD_WPA> con la password di crittografia che avete impostato sul Vs. router/access point

CTRL+X / S / INVIO per salvare il file.

Riavviamo il PI con sudo reboot.

A questo punto, una volta individuato l'IP che il server DHCP ha attribuito all'adattatore WiFi, possiamo connetterci come al solito al nostro PI (un po di pazienza, la connessione wireless impiega qualche manciata di secondi in più di quella cablata per essere disponibile).


Un ultimo aspetto da prendere in considerazione è l'attribuzione di un indirizzo IP specifico al nostro PI. Abbiamo due possibilità:
  • indicare nel file /etc/network/interfaces un IP fisso (ma questo sistema non mi piace troppo) 
  • andare ad operare sul ns. router nella sezione riguardante il server DHCP per impostare una relazione tra il MAC ADDRESS del nostro adattatore WiFi ed uno degli indirizzi del pool del DHCP che sceglieremo ad hoc.
Ecco come farlo su un router TP-Link (io ho attribuito un IP fisso sia alla connessione wireless, sia a quella cablata):


In questo modo potremo accedere al PI senza preoccuparci ogni volta di cercare l'IP assegnato.

In un prossimo articolo vedremo come installare e configurare sul PI il servizio Avahi per poter accedere senza utilizzare l'IP ma semplicemente utilizzando un nome...