giovedì 12 marzo 2009

VmWare - Hack VDM Web Access - Come accedere con Iceweasel 3 o Firefox 3

Livello: Ostico

Salve a tutti. ;)

Spesso e volentieri capita di dover accedere a servizi web che supportano solo determinati tipi o versioni di browser. Nella maggior parte dei casi (senza andare a pensare a questioni di marketing o altro) è solo una questione di compatibilità, quindi con altri strumenti diversi da quelli specificati non è possibile far funzionare un bel niente. Alle volte però capita che il suddetto servizio non sia semplicemente stato aggiornato con il passare del tempo quindi le specifiche di compatibilità non considerino nuove versioni dei programmi, come ad esempio Firefox 3 o Iceweasel 3, ma si fermino semplicemente alla seconda versione.

Questo è il caso di VDM Web Access di VmWare, invatti con Linux Debian Lenny o comunque con tutti i sistemi operativi dove si utilizza l'ultima versione del suddetto browser l'accesso non sarebbe consentito perchè la versione non è semplicemente prevista anche se con tutta probabilità funzionerebbe ugualmente.

La soluzione che ho trovato, ma potrebbero essercene altre più comode, è di cambiare le informazioni che il nostro WebAgent comunica al servizio web a cui si connette in modo da camuffarsi in ciò che a noi va bene.

Innanzi tutto per scoprire cosa considera adeguato o meno come browser la nostra pagina di accesso VMware VDM Web Access esegue dei javascript lato client del tipo:

// *** PSO VDM LiveCD ***
var pso_linux = SupportedOS("PSO Linux");
pso_linux.minJVM = '1.5';
pso_linux.browser['Iceweasel 1.5'] = 1;
pso_linux.browser['Iceweasel 2.0'] = 1;

// *** Partly supported Linux configurations ***
var other_linux = SupportedOS("Linux");
other_linux.minJVM = '1.5';
other_linux.browser['Firefox 1.5'] = 1;
other_linux.browser['Firefox 2.0'] = 1;
other_linux.browser['Firefox 3.0'] = 1;
other_linux.browser['Iceweasel 1.5'] = 1;
other_linux.browser['Iceweasel 2.0'] = 1;
A questo punto noi sappiamo esattamente cosa viene controllato al nostro accesso, consentendoci o meno di continuare.

Ora non ci resta che andare a scaricarci questo comodissimo componente di Firefox UserAgentSwitcher e quindi prelevare anche il file xml da importare per non dover compilare tutto a mano user_agent_xml_file . Installiamo il nostro addon, andando nelle opzioni, importiamo il nostro file XML ed editare le informazioni appena importate (Firefox 2 (Windows XP)) modificando le seguenti voci:

User agent: Mozilla/5.0 (Linux; U; Linux i686; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0
App Version: 5.0 (Linux; en-US)
Platform: Linux
A questo punto salviamo tutto e usciamo.

Rechiamoci di nuovo all'indirizzo web del nostro VMware VDM Web Access server ma prima andando in Strumenti->User Agent Switcher (Preferences->User Agent Switcher) e selezioniamo la voce che abbiamo appena modificato.

Ecco fatto avremo accesso al sistema remoto inserendo le dovute credenziali.

Nota importante: a giugno dovrebbe uscire la nuova versione del prodotto VMWare e quindi la lista di compatibilità dovrebbe preferibilmente allungarsi rendendo questo sistema non più necessario.

lunedì 9 marzo 2009

Creare un semplice server ftp con vsftpd

Livello: Facile.

Ambiente di riferimento: debian lenny
Server ftp usato: vsftpd

L'installazione e la configurazione di base sono quasi banali:
Si installi il server ftp

su
apt-get install vsftpd


A questo punto il sistema è configurato con una directory /home/ftp/ che funge da home per l'utente anonymous.
Nessun altro utente può accedere via ftp.
Se questo è sufficiente abbiamo finito :-)

Se invece si desidera dare accesso ad altri utenti è possibile lavorare sul file di configurazione

vim /etc/vsftpd.conf


Alcune righe interessanti sono le seguenti:

anonymous_enable=YES
Questa se presente (o se commentata dato che il default è YES) permette l'accesso all'utente anonymous, come abbiamo appena visto. Impostare a NO per bloccare l'accesso anonimo.

local_enable=YES
Questa permette agli utenti locali della macchina di accedere via ftp, entrando nella propria home directory.
Nel file di configurazione di default è commentata. Scommentarla per consentire l'accesso non anonimo.
Attenzione: di default (almeno su debian) gli utenti non anonimi hanno possibilità dinavigare in tutto il filesystem con i permessi dell'utente locale.
Per aggiungere un utente basta crearlo nel server con:

adduser gianni

Alcune righe sono interessanti per le impostazioni relative all'upload. Di default sono commentate, e il server risulta in sola lettura. Si consiglia comunque di leggere con attenzione i commenti del file di configurazione prima di utilizzarle.
Abilitandola proma opzione (write_enable=YES) si ottiene che gli utenti non anonimi adispongano dei permessi di scrittura (e modifica, e cancellazione, ...).

# Uncomment this to enable any form of FTP write command.
#write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
#local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES


Occhio che questa ultima opzione permette a chiunque di caricare file nella directory dell'accesso anonimo!
Con la seguente invece si modifica l'owner dei file caricati.

#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever


Le righe che seguono servono a gestire il chroot. Di default sono commentate e gli utenti non anonimi possono navigare in tutto il filesystem. Consiglio caldamente di scommentare chroot_local_users=YES.
L'altra impostazione serve ad indicare una lista di utenti a cui viene fatto il chroot (non possono uscire dalla loro home directory). Attenzione al funzionamento, se la precedente riga vale YES allora questa diventa la lista degli utenti che non subiscono il chroot e possono navigare in tutto il filesystem.

#
# You may restrict local users to their home directories. See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
#chroot_local_user=YES
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list


Per comprendere meglio le opzioni consigliodi applicarle una alla volta e verificare che si ottenga il risultato desiderato.
Ovviamente ad ogni modifica del file di configurazione si riavvii il demone con il seguente comando:

/etc/init.d/vsftpd restart

Nota: l'autore e il presente Blog declinano ogni responsabilità per danni, accessi illegittimi o perdite di dati. Provare sempre i sistemi su macchine di prova prima di metterli in produzione. Ogni miglioria al presente scritto è ben accetta.