Da Wiki a WP

27 gennaio 2009

Ho migrato quei pochi documenti fatti sul wiki qui in wordpress, mi sembrava una assurdita tenere mediawiki per 5 pagine.

I documenti si trovano nella categoria Docs. Pian piano comincerò ad usare anche i tag.

Iniziative molto valide per aiutare ci procede all’acquisto di un laptop:

TuxMobil – Linux With Laptops and more

Su questo sito web è possibile trovare svariate procedure di setup per diversi tipi di laptop. E’ consigliato verificare questo sito una volta identificato il modello desiderato per verificarne la piena compatibilità

http://tuxmobil.org/

LinuxSi – Negozi Linux Friendly

In queste pagine è possibile trovare tutti i negozi che sono attenti al mondo GNU/Linux e che offrono laptop più o meno liberi da altri sistemi operativi con pre-installato il pinguino

http://www.linuxsi.com/

Dell e Ubuntu

Negli Stati Uniti d’America Dell vende i suoi laptop con preinstallato Linux. Se non è possibile acquistarli direttamente li è possibile coprare lo stesso modello di notebook in Italia essendo quindi certi del funzionamento della procedura di setup di Ubuntu

linux-laptop.net – Linux on Laptop

Altro progetto simile a TuxMobil

http://www.linux-laptop.net/

Asus eeePc

Il ben noto progetto di Asus che ormai vede parecchi modelli di svariate “taglie” in commercio con una distribuzione GNU/Linux su misura

http://www.eeepc.it/

Acer Aspire One

Altro progetto simile ad Asus eeePc

http://www.acer.com/aspireone/

Controllo remoto via VNC

26 gennaio 2008

Molte volte abbiamo la necessità di prendere il controllo di una macchina da remoto. Esistono molti modi per agire direttamente sulla console del sistema operativo (SSH, RLOGIN, ecc…) ma un solo ed efficace modo per controllare interamente il desktop, con mouse e tastiera per capirci. Quello di cui sto parlando è il protocollo VNC.

Ma cos’è VNC?

VNC = Virtual Network Computing. E’, in pratica, un sistema di visualizzazione remota che permette di ottenere un ambiente ‘desktop’ non solo sulla macchina dove gira, ma ovunque da Internet e da un’ampia gamma di macchine con architetture differenti.

Su quali sistemi operativi lo possiamo utilizzare?

Si possono utilizzare sia il programma server che il programma client su quasi tutti i sistemi operativi. Principalmente la maggiore compatibilità si raggiunge con Windows e Linux.

Ho sentito dire che esistono “molti VNC”, quale scegliere?

Esistono molte software house che sfruttando il protocollo VNC hanno implementato il loro software. Personalmente per Windows vi consiglio come Client e Server UltraVNC che presenta alcune funzionalità inedite nei programmi concorrenti. Per Linux un server valido è x11vnc ed il client di visualizzazione che utilizzo di solito è xvnc4viewer (secondo il mio punto di vista).

Windows

Dove recupero e come installo UltraVNC Server?

Eccoci al punto centrale di questa guida. Innanzitutto dobbiamo capire cosa vogliamo fare; se si desidera installare solo un server per il controllo di quella macchina basterà scaricare questo software, altrimenti scanso equivoci possiamo prendere l’installer per Server e Client da qui. Per scaricare basta che scegliate uno degli svariati mirrors di sourceforge. Noi procederemo con l’installazione del secondo file.

vnc_guide_-_setup_screen
Scegliamo qui i componenti che vogliamo installare. Se state installando UltraVNC sulla macchina da controllare vi basterà selezionare UltraVNC Server (e vi consiglio di lasciare la spunta sui driver e sulla DSM Encryption) altrimenti se state installando il software su una macchina che controlla un altro server avrete bisogno semplicemente di UltraVNC Viever. Effettuata la scelta potete passare alla schermata successiva.

vnc_guide_-_setup_screen_2

Analizziamo voce per voce:

  • Register UltraVNC Server as a system service: vi permette di fare in modo che il server VNC parta come servizio di sistema (può essere utile visto che vi permette di controllare una macchina ancora prima che venga effettuato qualunque login).
  • Start or restart UltraVNC service: vi permette di scegliere se alla fine del setup volete o meno eseguire il servizio UltraVNC (ovviamente nel caso in cui abbiate scelto di registrarlo con service).
  • Configure MS-Logon II: permette di configurare le informazioni di logon per la macchina controllata.
  • Configure Admin Properties: alla fine del setup vi verrà richiesto di configurare le opzioni del server VNC.
  • Clean old VNC registry keys: nel caso in cui abbiate installazioni precedenti di VNC vi permette di cancellare tutte le chiavi di registro delle vecchie installazioni.
  • Create UltraVNC icons: vi crea i collegamenti di VNC Server e Client sul desktop.
  • Associate UltraVNC Viewer with the .vnc file extension: associa i file di profile .vnc con UltraVNC.

Dopo aver effettuato la scelta delle opzioni premete Next per continuare e successivamente Install. Dopo l’installazione fate un bel riavvio che non fa mai male. All’avvio successivo sulla systray (vicino all’orologio) comparirà questa icona (quella con l’occhiolino)

Premete due volte con il tasto sinistro del mouse sull’icona e vi comparirà una finestra di opzioni come questa:

vnc_guide_-_options_screen

Non vedremo tutte le singole opzioni ma le più importanti ed usate.

  • Ports: vi permette di impostare la porta tramite la quale passare per controllare il Server. Ci sono due porte, la prima è per il controllo diretto tramite client VNC l’altra tramite un apposita applet java. A voi interessa principalmente la prima.
  • Enable JavaViewer: ne abbiamo appena parlato, riguarta la connessione sulla http port tramite applet java.
  • VNC Password: è la password che verrà richiesta a chi si connette al momento del collegamento.
  • File transfert Enable: è uno di quei tool dei quali vi avevo parlato prima. Vi permetterà una volta connessi (e dopo aver effettuato il login remoto) di scambiare file tra le due macchine client e server.
  • Disable Viewers inputs: disabilita automaticamente mouse e tastiera di chi si connette.
  • Disable Local inputs: server per disabilitare tastiera e mouse della macchina controllata.

Dopo aver impostato tutto potete dare OK ed il gioco è fatto.

Come mi connetto ad un server VNC?

Seguendo lo stesso setup vi servirà un viewer. Dopo aver effettuato l’installazione ed avendo selezionato UltraVNC Viewer troverete un collegamento nel menu start: C:Documents and SettingsAll UsersMenu AvvioProgrammiUltraVNCUltraVNC Viewer. Dopo aver avviato il programma vi comparirà una finestra di questo tipo:

vnc_guide_-_viewer_screen

Descriviamo le varie opzioni:

  • VNC Server: mettete l’ip della macchina da controllare (se state controllando una macchina in rete locale inserite l’indirizzo ip della LAN altrimenti quello della WAN, se state usando un router e/o un firewall dovrete impostare NAT e regole per il FW).
  • Quick Options: qui potete impostare la qualità della connessione, vi consiglio di fare MODEM nel caso in cui siate via linea ADSL dai 640kbps fino ai 4mbps, SLOW nel caso di un 56kpbs e MEDIUM nel caso di linee superiori a 4mbps (sconsiglio LAN visto che risulta troppo pesante anche per una LAN stessa). Potete inoltre impostare la possibilità di disabilitare la vostra tastiera e mouse spuntando l’opzione View Only e puntando Auto Scaling verrà ridimensionato il desktop del server secondo le dimensioni del client.

Premendo il tasto Options… vi comparirà questa finestra:

vnc_guide_-_viewer_connection_opt_screen

Le opzioni principale riguardano il Full screen mode (verrà aperta la sessione remota a tutto schermo) e il protocollo di encryption.

Controllo multiplo

Nel caso in cui sorga la necessità di controllare più di una macchina nella stessa LAN basterà cambiare le porte su uno dei due server e ridefinire le regole su NAT e/o Firewall ed al momento della connessione esterna da WAN digitare in entrambe i casi l’ip pubblico seguito dai : e dalla porta del server. Per esempio se abbiamo configurato il primo server sulla porta 7000 e il secondo sulla porta 8000 per connettersi via VNC alla prima macchina (supponendo che l’ip pubbico sia 123.213.132.123):

vnc_guide_-_viewer_example_screen

mentre per connettersi al secondo server sarà ip:8000.

Linux

Installare x11vnc

Sfruttando il sistema di pacchettizzazione della nostra distribuzione possiamo recuperare il pacchetto dal repository. Nell’esempio simuleremo l’utilizzo di Ubuntu/Debian.

#  apt-get install x11vnc

Avviare il server in ascolto

Per avviare il server basterà lanciare il seguente comando:

$  x11vnc -passwd password -many -display :0 -rfbport 5900

nell’esempio ho incluso le opzioni per l’impostazione della password, l’attivazione per più sessioni con many, il display di destinazione e la porta d’ascolto (5900). Per altre opzioni:

$  man x11vnc

Utilizzo del client

Per utilizzare il client basta lanciare

$  xvnc4viewer ip:porta

e verrà richiesta la password per la connessione.

Sicurezza, VNC non la prevede

Esistono alcuni plugin per UltraVNC per criptare la connessione ma la password viene comunque mandata in chiaro. La soluzione migliore, se si necessita di una connessione sicura, è un tunnel ssh.

Windows

Con windows il metodo più veloce e facile è utilizzare putty. Putty tra le altre cose permette di instaurare un tunnel con un server ssh in ascolto dall’altra parte e di instaurare una connessione sicura all’interno del tunnel (in questo caso la nostra comunicazione VNC).

Linux

Per linux potete sfruttare i concetti espressi nel documento “Tunnel SSH: ssh -L/-R“.

IOS Cisco: qualche Tips

5 novembre 2007

Mi capita spesso di aver la necessità di ricordare qualche comando per vedere i principali parametri di una connessione ADSL su un router cisco. Diciamo che questa pagina serve principalmente a me come memo e a voi come suggerimento.

Informazioni sul caller, l’interfaccia che effettua la chiamata dial-up

Con il seguente comando possiamo vedere il metodo di autenticazione (PAP, CHAP), l’ip pubblico assegnatoci dall’ISP ed il count dei pacchetti transitati dall’interfaccia Virtual-access:

sh caller full

Dettagli sulla potenza e la modalità di connessione

Per vedere la modalità di connessione DSL, la potenza del segnale ed altri paramentri sul modem (tra cui la velocità) possiamo usare sh dsl seguito dalla specifica dell’interfaccia ATM.

sh dsl interface ATM0

Cisco Discovery Protocol

Utile protocollo per la raccolta di informazioni sull’hardware cisco nella stessa subnet. Per vedere le informazioni è necessario attivare cdp:

conf terminal
  cdp run
exit

dopodiché utilizzare sh cdp per vedere le informazioni, per esempio suigli apparati vicini

sh cdp neighbors detail

ProxyReverse con Apache2

27 ottobre 2007

Supponiamo di avere la necessità di configurare apache2 per un ProxyReverse verso un servizio offerto, per esempio, questo:

$  netstat -ntlp
Proto Recv-Q Send-Q  Local Address    Foreign Address   State     PID/Program name
tcp        0      0  127.0.0.1:1234   0.0.0.0:*         LISTEN    -

e quindi fruibile solo in locale.

In questo caso voglio permettere a chi accede da 192.168.1.0/24 di raggiungere questo servizio che è in esecuzione su una macchina della stessa subnet (es. 192.168.1.100) e voglio che sia protetto da SSL

Setup apache2 e relativi moduli

partiamo con l’installazione di apache:

#  apt-get install apache2

abilitiamo i moduli di apache che ci serviranno

#  a2enmod proxy
#  a2enmod proxy_http
#  a2enmod ssl

o se preferite:

#  cd /etc/apache2/mods-enabled/
#  ln -s ../mods-available/proxy.conf proxy.conf
#  ln -s ../mods-available/proxy.load proxy.load
#  ln -s ../mods-available/proxy_http.load proxy_http.load
#  ln -s ../mods-available/ssl.conf ssl.conf
#  ln -s ../mods-available/ssl.load ssl.load

Creazione certificato SSL

creaiamo una subfolder per il certificato:

#  mkdir /etc/apache2/ssl

ed ora creiamolo. Lo useremo solo privatamente senza necessità di rilascio da parte di una CA.

Cominciamo col generare la chiave:

$  openssl genrsa -out name.key 1024

ed esportare la request (specificando i dati che preferiamo in quanto non rilevanti):

$  openssl req -new -key name.key -out name.csr

Ora proseguiamo ricevendo il certificato (specificando i dati che preferiamo in quanto non rilevanti, inclusi i giorni di validità del certificato):

$  openssl x509 -in  name.csr  -out name.crt -req -signkey  name.key -days 1825

Configurazione apache2

Adesso passiamo alla configurazione di apache2. Creiamo un nuovo sito in sites-available per comodità:

# touch /etc/apache2/sites-available/example_proxy_reverse

e modifichiamolo con l’editor di testo che preferiamo in questo modo:

Listen 443
NameVirtualHost *:443
<VirtualHost *:443>
      ServerName localhost
      SSLEngine On
      SSLCertificateKeyFile ssl/name.key
      SSLCertificateFile ssl/name.crt
      ProxyRequests Off
      <Proxy *>
              Order deny,allow
              Allow from all
      </Proxy>
      ProxyPass /virtual-path http://localhost:1234/
      ProxyPassReverse /virtual-path http://localhost:1234/
</VirtualHost>

oppure, nel caso in cui si voglia un prelogin htaccess di apache per rafforzare la sicurezza, così:

Listen 443
NameVirtualHost *:443
<VirtualHost *:443>
      ServerName localhost
      SSLEngine On
      SSLCertificateKeyFile ssl/name.key
      SSLCertificateFile ssl/name.crt
      ProxyRequests Off
      <Proxy *>
              AuthType Basic
              AuthName "Remote Shell Access"
              AuthUserFile /etc/apache2/nostro_file_htpasswd
              Require user nome_utente_htaccess
              Order deny,allow
              Allow from all
      </Proxy>
      ProxyPass /virtual-path http://localhost:1234/
      ProxyPassReverse /virtual-path http://localhost:1234/
</VirtualHost>

Ora abilitiamo il sito appena creato:

#  a2ensite example_proxy_reverse

o se preferite:

#  cd /etc/apache2/sites-enabled/
#  ln -s ../mods-available/example_proxy_reverse example_proxy_reverse

Riavvio dei servizi

Ora riavviamo apache2:

#  /etc/init.d/apache2 restart

Adesso puntando a:

https://192.168.1.100/virtual-path

raggiungeremo il nostro servizio offerto localmente su quella macchina.

Mod rewrite Apache2

10 ottobre 2007

Probabilmente avrete sentito parlare di Virtual Host con apache2. In poche parole si tratta, nella maggior parte dei casi, di rispondere con i contenuti di una subfolder ad una richiesta via dns.

Utilizzo abituale

Questa funzionalità viene usata soprattutto dagli hosting multi-dominio che ospitano più siti web su una sola macchina o su più macchine con lo stesso ip. Per esempio se il server contiene le seguenti cartelle:

/var/www/foo.tld
/var/www/foobar.tld
/var/www/bar.tld

è possibile fare in modo che chi chiama foobar.tld riceva i contenuti della subfolder sopra elencata. Ma se volessimo solo capire come funziona il modulo che si occupa di questo?

Concetti di base

Le regole per mod_rewrite possono essere definite sia nella configurazione stessa di apache2 che nei files .htaccess all’interno delle subfolder. Per quanto riguarda la configurazione diretta in apache le stesse regole che vedremo vanno inserite nella definizione del Virtual Host stesso.

Definizione di un esempio

Supponiamo di avere il nostro sito web raggiungibile da http://www.dominio.tld e di dover configurare il sottodominio foo.dominio.tld per fare un redirect verso un altra pagina, per esempio http://www.un_altro_dominio.tld. Come prima cosa dovremo configurare un record A o CNAME che venga risolto come http://www.dominio.tld, ma non approfondiremo questo concetto. Una volta fatto questo creiamo un file .htaccess all’interno della cartella con i files e modifichiamolo così:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^foo.dominio.tld
RewriteRule ^(.*)$ http://www.un_altro_dominio.tld$1 [L,R=301]

Esaminiamo le varie istruzioni. La prima serve per abilitare mod_rewrite, la seconda verifica che si provenga dal nostro sottodominio, la terza applica spudoratamente il redirect agganciandoci i path/parametri (variabile $1) se la condizione precedente è rispettata (flag L). Il flag R specifica qual’è il response code HTTP. Esistono alcuni flag tra cui il flag NC che permette di fare una ricerca case insensitive e quindi anche richiamando FOO.dominio.tld verrebbe eseguito il redirect.

Se vogliamo possiamo aggiungere anche il flag P in modo che l’url nella barra dell’indirizzo rimanga quello richiesto. Per fare questo è necessario avere abilitato i moduli mod_proxy e mod_proxy_http.

Informazioni utili

Ovviamente quanto scritto è solo una delle svariate cose che si possono fare con mod_rewrite. Per maggiori informazioni consultare direttamente la documentazione di Apache.

Partiamo con la configurazione del mIRC. Premete contemporaneamente i tasti ALT + O e vi si aprirà la finestra delle opzioni mIRC. Nel primo menu, Connect, trovate la voce Options dopodichè premete il tasto Advanced.

Vi si aprirà la finestra delle opzioninat_e_mirc_-_dcc_ports1

Inserite nel campo First e Last un range (intervallo) di porte con una differenza pari al numero di Send che pensate di poter fare in contemporanea (diciamo che 5-6 è un numero decente per un utilizzatore normale), l’importante è che l’intervallo sia compreso tra 1 e 65535. Controllate di avere la spunta su DCC. Poi premete OK per confermare la modifica. Segnatevi da una parte l’intervallo di porte che avete utilizzato.

Ora il mio consiglio (visto che ogni router, anche della stessa marca, ha un menu diverso dall’altro) è quello di andare sul sito:

http://www.portforward.com/routers.htm

Qui scegliete il vostro router, o cmq quello che sia avvicina di più come modello. Ora verranno visualizzati dei Link:

  • Port Forwarding for the Marca Modello
  • Port Triggering for the Marca Modello

Ed in altri casi trovate anche antri links come per esempio quelli che vi spiegano cosa sono Port Forwarding e Port Triggering.

Per configurare il NAT vi basterà scegliere Forwading e per il Firewall, Triggering.

A questo punto scegliete la voce mIRC DCC – IRC DCC ma dovrete ignorare le porte che prende in considerazione il sito visto che quelle corrette sono quelle che avete impostato.
Ora inserite nel campo seguente il vostro IP in LAN:

nat_e_mirc_-_port_forward_screen

Per vedere il vostro IP in LAN in Windows basta fare Start -> Esegui -> cmd Vi si apre una console DOS, ora digitate:

ipconfig /all

e fate INVIO.

nat_e_mirc_-_dos_ipconfig_screen

Vi verranno fornite delle informazioni come queste, ma a voi il dato che interessa è Indirizzo IP. E’ importante controllare che alla voce DHCP abilitato corrisponda No altrimenti vuol dire che il vostro indirizzo IP viene assegnato dinamicamente. Per impostarlo staticamente andate in Connessioni di Rete sotto Pannello di Controllo e fate tasto Dx sulla LAN e poi Proprietà. Dopo premete due volte su Protocollo Internet (TCP/IP) e vi si aprirà una finestra di questo tipo:
nat_e_mirc_-_tcp-ip_properties_screen

Premete ora su Utilizza il seguente indirizzo IP ed impostate un indirizzo IP che appartenga a SubNet e Classe del Router. Per esempio se l’IP del router è 192.168.1.1 potete impostare in questo modo i parametri:

Indirizzo IP: 192.168.1.2
Subnet Mask: 255.255.255.0
Gateway predefinito: 192.168.1.1

e di seguito i DNS.

Questa è ovviamente una configurazione tipo, va adattata alle proprie esigenze.

Ora premete OK e di nuovo OK nella finestra principale. Adesso dobbiamo andare sul router ed impostare nuovamente il DHCP in modo che non includa il vostro indirizzo per le assegnazioni automatiche. Andate perciò nel menu di configurazione del vostro router (di norma da Browser inserendo l’indirizzo, nell’esempio 192.168.1.1). Dopo aver inserito la password cercate il menu DHCP ed entrare in modifica delle opzioni del DHCP server. Nelle opzioni viene specificato il range di indirizzi che il DHCP server assegna. Nel caso dell’esempio controllate che 192.168.1.2 non sia compreso/uguale nel range specificato che va da Start IP ad End IP. Se per esempio il range del DHCP server è impostato con Start IP 192.168.1.2 modificatelo portandolo a 3 oppure ad un numero superiore in modo che il numero finale non sia compreso tra Start IP ed End IP. Ora salvate le impostazioni del DHCP.

Dopo aver impostato l’IP statico (per chi non lo avesse già) possiamo passare alla configurazione del Router. Seguendo le istruzioni che fornisce il sito seguite tutti i passaggi entrando nei menu da esso indicati ed inserite l’intervallo di porte impostato in precedenza.

Il procedimento va ripetuto per Port Triggering (se c’è un Firewall abilitato sul Router) e Port Forwarding.