Squid Proxy behind another Proxy

Dopo aver cercato parecchio ho trovato come poter configurare un Proxy Squid che potrà accedere a internet solo tramite un altro Proxy a cui non avete accesso.

In particolare la mia situazione e’ questa: terrò un corso presso un istituto che non vuole autenticare nel suo server proxy direttamente tutti i partecipanti al corso ma fornirà un unico accesso al docente. Ecco allora che ho pensato di gestire tramite un SME Server Virtuale nel mio MacBook Pro, una sottorete con un altro Server Squid che autentichi i partecipanti in una rete diversa e gestita appunto dal server virtuale.

L’installazione di Sme Server è come al solito banale, unico accorgimento nella macchina virtuale è stato associare una scheda di rete del server alla mia scheda wired ed una nuova scheda di rete virtuale alla mia interfaccia wifi entrambe in modalità bridged, utilizzerò poi questa interfaccia per fornire connettività ai partecipanti in modalià Access Point.

Una volta installato il Server SME (7.5), ho potuto da subito creare gli utenti e installare dansguardian per gestire in modo peculiare i permessi.

Il punto per me particolare e’ stato come istruire il mio virtual server SME, ad accedere ad internet tramite il proxy dell’istituto che ci ospita. Dove metto username e password che mi forniranno dopo avermi severamente interrogato, scannerizzato e identificato tramite carta d’identità passaporto ecc.. ?

Inizialemente pensavo di utilizzare delle variabili di sistema in questo modo come indicato qui:

#proxy.sh
 export http_proxy=http://username:password@ip_host:port/
 export ftp_proxy=http://username:password@ip_host:port/
 export no_proxy=.domain.com
 export HTTP_PROXY=http://username:password@ip_host:port/
 export FTP_PROXY=http://username:password@ip_host:port/

ma questo funziona solo da riga di comendo del mio server ma non per gli utenti dietro il mio proxy

Alla fine ho trovato che SME Server aveva giaà pensato a poter configurare squid per collegarsi ad un proxy padre (parent proxy). Ho dovuto solo aggoungere un parametro per specificare nome utente e password.

Ecco i passi da fare:

mkdir -p /etc/e-smith/templates-custom/etc/squid/squid.conf
cp /etc/e-smith/templates/etc/squid/squid.conf/10ParentCache /etc/e-smith/templates-custom/etc/squid/squid.conf/

modificare /etc/e-smith/templates-custom/etc/squid/squid.conf/10ParentCache in questo modo:

{
 $OUT = "";

 if (defined $SquidParent && $SquidParent)
 {
 $OUT .= "cache_peer $SquidParent parent ";
 $OUT .= $SquidParentPort || "3128";
 $OUT .= " 7 no-query default";
 $OUT .= " login=$SquidUser";
 }
}

da riga di comando digitare:

db configuration set SquidParent ip_proxy
db configuration set SquidParentPort porta_proxy
db configuration set SquidUser username:password

(SquidUser è una variabile non definita di default in SME, in alternativa si possono inserire questi valori direttamente nel file di configurazione)

Dove:

ip_proxy = ip o nome del server proxy dell’istituto ospitante

porta_proxy = porta del proxy dell’istituto ospitante

username:password = credenziali ottenute (con molta fatica 🙂 ) dall’Istituto

In seguito dare i comandi:

expand-template /etc/squid/squid.conf
signal-event proxy-update
signal-event post-upgrade; signal-event reboot

Aprire il Terminale da Finder in OS/X

Ecco una breve guida su come aprire il terminale da Finder di Mac OS/X nella posizione corrente:

Lanciare l’applicativo AppleScriptEditor (cmd+spazio e digitare applescript)

Copia e incolla nell’editor il seguente codice:

tell application "Finder" to set currentPath to insertion location as text
set posixPath to POSIX path of currentPath
tell application "Terminal"
	activate
	if not (exists front window) then do script ""
	do script "cd \"" & posixPath & "\"" in front window
end tell

Salvare lo script come “Applicazione” in una cartella a piacere (ad esempio ~/Apps)

Registra come Applicazione

Se lo desiderate, modificate l’cona dell’applicazione come spiegato qui

Sempre dalla cartella dove avete salvato l’applicazione trascinate l’applicazione nella parte alta della finestra e otterrete il comodo link:

Esempio di toolbar modificata

Se desiderate avere già l’applicazione pronta potete scaricarla da qui: OpenTerminal

Download facile da YouTube

Post Obsoleto, e’ cambiata l’interfaccia di YouTube 🙁

Ecco come scaricare facilmente i video di youtube sul proprio pc:

Ho testato con Firefox e Safari ma funziana anche su IE8

Trascinare il seguente link nella barra dei segnalibri (o aggiungere nei seganlibri):

Get YouTube video

Quando da una pagina di YouTube cliccherete su questo link, sotto la finestra delle impostazioni del video troverete un link per scaricare il filmato in formato MP4 o se disponibile, in alta definizione..

Sorgente: http://googlesystem.blogspot.com/2008/04/download-youtube-videos-as-mp4-files.html

Plone Backup e Ftp con pipe

Ecco come ho preparato un comodo script per fare il backup dell’archivio di Plone e subito dopo copiare il backup compresso con TAR in un server FTP senza lasciare nel webserver il file tgz

#!/bin/bash

PLONEPATH="/home/zope/plone32" # where you have your buildout.cfg
REPOZOPATH="${PLONEPATH}/bin/repozo"
DATAFSPATH="${PLONEPATH}/var/filestorage/Data.fs"
DESTINATION="/home/zope/backup/repozo"
DBBACKUP="${REPOZOPATH} -BzQ -r ${DESTINATION} -f ${DATAFSPATH}"
FTP_SERVER_IP="192.168.1.21"
FTP_DESTINATION="dir1/subdir1"
PYTHONPATH="${PLONEPATH}/parts/zope2/lib/python"

export PYTHONPATH # otherwise repozo.py will probably not be able to find its libraries

DATA=`expr $(date +%d)`
RESTO=`expr ${DATA} % 2` # 2 set backup, on even and odd days
DIRNAME_DESTINATION=`dirname ${DESTINATION}`
BASENAME_DESTINATION=`basename ${DESTINATION}`

`${DBBACKUP}`

ftp -n ${FTP_SERVER_IP} <<ENDSCRIPT
user ftp_user ftp_password
binary
put "| /bin/tar -czf - -C ${DIRNAME_DESTINATION} ${BASENAME_DESTINATION}" ${FTP_DESTINATION}/backup_${RESTO}.tgz
bye
ENDSCRIPT

Disabilitare il click sul touchpad – Xubuntu

Ecco come fare per disabilitare la funzione che permette di fare click toccando il mousepad del notebook. Questa funzione e’ detta “touchpad tapping”. Ci sono diverse guide in rete ma questa e’ quella che ho testato e funziona con Xubuntu 9.10

In questa versione di Linux la responsabilità della gestione delle periferiche di input è demandata a HAL (Hardware Abstraction Layer) e quindi bisogna agire in questo modo:

  1. Verificare che HAL gestisca il touchpad:
    lshal | grep synaptics
  2. Il comando dovrebbe dare un risultato tipo:
    input.x11_driver = 'synaptics'  (string)
  3. Creare questo file per abilitare SHMConfig in HAL:
    sudo vi /etc/hal/fdi/policy/shmconfig.fdi
  4. Incollare il seguente codice:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <deviceinfo version="0.2">
      <device>
        <match key="input.x11_driver" string="synaptics">
          <merge key="input.x11_options.SHMConfig" type="string">True</merge>
        </match>
      </device>
    </deviceinfo>
  5. Riavviare il pc
  6. Eseguire il seguente comando per verificare che HAL abbia preso i comandi dati
    lshal | grep x11_options
  7. Il comando dovrebbe dare questo risultato:
    input.x11_options.SHMConfig = 'True'  (string)
  8. Eseguire ora questo comando per disabilitare scroll e tapping:
    synclient TouchpadOff=2
  9. Eseguire in alternativa il seguente comando per disabilitare solo il tapping:
    synclient MaxTapTime=0
  10. Testare il funzionamento del touchpad
  11. Per rendere permanente l’impostazione andare su:
    Applicazioni > Impostazioni > Sessione e Avvio > Application Autostart, Aggiungere una voce dove inserire nome e descrizione a piacere e come comando quello indicato al punto 8 oppure al punto 9

Vedi post originale

Windows Mail IMAP e Gmail

Ecco un semplice sistema per configurare Windows mail o in genere un client di casa Microsoft con IMAP di Gmail:

Compilare il form su: http://www.motobit.com/util/gmail-smtp-imap-outlook.asp e scaricare il file .iaf

Dal client di posta selezionare Strumenti -> Account e Importare il file .iaf

Importazione Account in Windows Mail
Importazione Account in Windows Mail

Una volta scaricate le cartelle imap, selezionare la cartella [GMAIL], cliccare col tasto destro, Impostazioni sincronizzazione -> Non sincronizzare

Non sincronizzare la cartella GMAIL
Non sincronizzare la cartella GMAIL

Tag Radio e accessibilità

Girovagando per la rete ho trovato un form che mi ha suggerito un’idea…

Problema: Campi radio tipo “SI” e “NO” con una label senza campo associato per entrambi i campi ed un testo descrittivo più dettagliato. ecco un esempio di come si presenta attualmente la struttura (semplificata) in Plone:

Se ti piace la musica classica scegli Si altrimenti scegli No

Codice:

  <div>
  <label>Musica ?</label>
  <div>Se ti piace la musica classica scegli Si altrimenti scegli No</div>
  <input type="radio" name="musica" id="musicasi" value="si" />
  <label for="musicasi">Si</label>

  <input type="radio" name="musica" id="musicano" value="no" />
  <label for="musicano">No</label>
</div>

Lo screen reader Jaws, quando è in modalità ediitazione, ignora la prima label non associata ad alcun campo ed il div con classe formHelp e legge solo Si e No. L’utente non vedente è come se dovesse “firmare un assegno in bianco..”.
L’unica cosa che può fare è uscire dalla modalità editazione leggere i testi e rientrare in modalità editazione… Questa operazione diventa particolarmente pesante per form con molti campi.

Primo aggiustamento: Questo tipo di campi devono essere racchiusi in un fieldset. il tag legend verrà letto da Jaws:

Musica ?
Se ti piace la musica classica scegli Si
altrimenti scegli No


Codice:

<div>
   <fieldset>
      <legend>Musica ?</legend>
      <div>Se ti piace la musica classica scegli Si
altrimenti scegli No</div>
      <input type="radio" name="musica" id="musicasi" value="si" />
      <label for="musicasi">Si</label>

      <input type="radio" name="musica" id="musicano" value="no" />
      <label for="musicano">No</label>
   </fieldset>
</div>

Ora Jaws in modalità editazione legge meglio il form, ma salta ancora il div di classe formHelp.

Da notare che quando Jaws legge i campi SI e NO, ora antepone sempre il testo della LEGEND; pronuncia qualcosa tipo “Musica ? SI” e “Musica ? NO”.

Soluzione proposta: Prendendo spunto da un form visto in rete ho pensato fattibile inserire un link nella legend che punti al div col testo di aiuto:

Musica ? [ Help ]
Se ti piace la musica classica scegli Si altrimenti scegli No

Codice:

<div>
   <fieldset>
      <legend>Musica ? [ <a href="#aiuto_musica" title="ulteriori
informazioni sulla compilazione del campo">Help</a> ]</legend>
      <div id="aiuto_musica">Se ti piace la musica
classica scegli Si altrimenti scegli No</div>
      <input type="radio" name="musica" id="musicasi" value="si" />
      <label for="musicasi">Si</label>

      <input type="radio" name="musica" id="musicano" value="no" />
      <label for="musicano">No</label>
   </fieldset>
</div>

Verificato con Jaws, il link viene letto correttamente e consente, premendo il tasto invio, di uscire automaticamente dalla modalità editazione e leggere il testo di aiuto.
Per gli utenti vedenti è possibile nascondere tramite css il link “[Help ]” in quando non necessario:

<span>[ <a...>Help</a> ]</span>

Risultato:

Pro: l’utente non vedente se vuole può accedere facilmente al testo di aiuto e viene indicato subito il fatto che tale testo esiste. Non c’e’ bisogno che esca manualmente dalla modalità editazione e cerchi manualmente se esiste qualcosa che Jaws non ha letto.

Contro: in questo modo la legend viene letta come detto prima prima di ogni campo radio e con la legend anche il testo del link: “Musica ? Aiuto SI” e “Musica ? Aiuto NO”