L’idea di parlarVi di IIS è nata dopo aver “messo mani” sull’ennesimo IIS presente esposto su internet con il servizio FTP attivo, l’ennesima soluzione di IIS configurata in modo standard senza conoscerne i veri rischi. Spesso non si ci rende conto che è di fondamentale importante conoscere molto bene ciò che si apre verso il mondo internet ed importante mantenersi informati su quanto  si scopre in termini di sicurezza su quel servizio, è estremamente semplice, sopratutto con servizi di questo tipo conoscere che versione è attiva e quindi successivamente fare attacchi in tal senso.

In modalità di Default l’installazione dell’FTP di Microsoft (sia in IIS6 che IIS7 sono praticamente identici) non sono servizi adeguati per offrire accessi da utenze esterne, in quanto lato sicurezza vengono installati in modalità NON ISOLATA e quindi in qualche modo si espone molto più di quanto si vuole offrire, questo tipo di configurazione viene fatta anche da alcuni software di Hosting che si appoggiano ad IIS, evito di far nomi, per ovvi motivi, ma fate molta attenzione quando Vi offrono servizi Hosting su macchine IIS, accertatevi della versione di FTP proposta e chiedete la modalità di impostazione.

Ma veniamo a spiegare di cosa stiamo parlando. l’FTP di Microsoft ha 3 modalità di funzionamento

Modalità NON Isolata
Questa modalità permette di creare per ogni utente una sua directory e definirne i relativi accessi, è la soluzione più semplice in termini di configurazione ma di fatto come dice la parola stessa, non isola gli accessi per cui ogni utente, se ne ha i diritti può accedere alle cartelle degli altri utenti

Modalità Isolata
Questa modalità invece crea per ogni utente una sua directory di lavoro e da li l’utente non può uscire creando appunto un’area isolata di lavoro, ma ha un grosso limite, OGNI UTENTE ha una sua area di lavoro quindi NON e’ possibile dare a due utenti la stessa area, questo è un grosso limite dell’FTP di microsoft, per questo spesso molti utenti valutano soluzioni diverse per l’FTP

Modalità Integrata con Active Directory
Su questa non ci soffermeremo, in quanto raramente si troverà un servizio FTP con Active Directory esposta su internet, ma l’impostazione è molto simile alla modalità Isolata con l’unica differenza che si appoggia ad Active Directory.

Con IIS di Microsoft, quando si crea un servizio FTP, in default lo crea in modalità NON ISOLATA, non dando possibilità di scelta, molti utenti non sono a conoscenza delle possibili differenze, ignorando di fatto i rischi. Inoltre, l’utilizzo standard di un client FTP non mette in evidenza i rischi presenti e quindi salvo conoscerli, non si scoprirà mai cosa succede, ma veniamo ad un esempio pratico…

Installazione di IIS con Servizio FTP per l’offerta di spazio Web, l’FTP è stato configurato come Root sulla directory dove sono presenti tutti i Web, Hosting e poi create Virtual Directory per ogni utente abilitato, ogni Virtual Directory viene impostata come accesso ad una delle sottodirectory sotto a seconda dell’Hosting servito, facciamo un esempio

FTP ROOT: F:Hosting
Virtual Utente 1: F:Hostingvirtual1  – sito: virtual1.it
Virtual Utente 2: F:Hostingvirtual2 – sito: virtual2.it
ecc. ecc.

accedendo con Explorer (utilizzando ftp://) alla propria directory in modalità FTP io vedrò effettivamente la mia area (F:Hostingvirtual1), riportandola come Root d’accesso, non rendendomi conto di quanto in realtà succede e dei rischi che si corrono, se invece utilizzo un software più completo (ad es. filezilla) noterò la possibilità di salire di un livello, e di fatto MI TROVERO’ sulla Root di F:Hosting.
In questo modo potrei accedere alle directory di tutti gli altri Hosting presenti sul server, in quanto visibili (vedrò virtual1, virtual2, ecc.)
Certo ci sono molti modi per evitare rischi, come ad esempio non permettere l’accesso alla root, neanche per la visione della directory da parte degli utenti, bloccare le directory degli Hosting ai solo utenti autorizzati, ecc.  ma il NON conoscere questo rischio espone enormemente il rischio in tal senso, ma vedremo poi impostare nel miglior modo gli accessi.

Un’ulteriore rischio è comunque la possibilità di accedere alle directory degli altri utenti anche se in ubicazioni differenti, facciamo un esempio

FTP ROOT: F:Root
Virtual Utente 1: F:Hostingvirtual1  – sito: virtual1.it
Virtual Utente 2: F:Hostingvirtual2 – sito: virtual2.it
ecc. ecc.

In questo caso tornando alla root, non vedrò le directory degli altri hosting, in quanto non sotto la directory ROOT, ma è sufficente dedurre il nome del sito per poter accedere ai sorgenti degli altri Hosting ospitati quindi, con le credenziali corrette accederò in FTP://virtual1.it (che corrisponde al contenuto del F:HostingVirtual1, cambiando il percoso con FTP://virtual1.it/virtual2 vedrò quanto ospitato sull’altro Hosting e via così con tutti gli Hosting presenti.
Certo devo conoscere quali altri hosting sono presenti su quella macchina…ma è più semplice di quanto si pensi, ne parleremo in modo più approfondito in altri atricoli.

ora vediamo come trasformare un Hosting FTP creato in modalità NON ISOLATA in una ISOLATA, ci soffermiamo alla trasformazione perchè in caso di creazione nuovo FTP, viene chiesto che tipo di FTP creare, mentre la trasformazione richiede la modifica del Metabase come spiegato qui ma riporto brevemente cosa è necessario fare:

- Stoppare il servizio FTP
- modificare il file presente in %systemroot%system32inetsrv (metabase.xml) è assolutamente consigliato prima effettuare una copia del file
- impostare UserIsolationMode del domino FTP (il default è /LM/MSFTPSVC) ad 1, se già presente, diversamente crearlo
- riavviare il servizio FTP

Il problema è che l’accesso degli utenti FTP non avviene più nel percorso indicato nella Virtual Directory FTP, in quanto, nella configurazione “isolated” il percorso di riferimento è SEMPRE una sottodirectory della ROOT dell’FTP (RootFTP/LocalUser/nomeutente), quindi l’accesso degli utenti dovrà essere rivisto… ma come ?
Purtroppo non c’è soluzione la directory per ogni utente NON è configurabile in quanto integrata nel servizio stesso e non modificabile, è sempre sotto il percorso dell’FTP principale, e poi LocalUser/nomeutente, non c’è modo di spostare questa directory, quindi è necessario impostare qui sotto gli eventuali percorso, mi rendo conto che a volte non è gestibile questo tipo di soluzione, ma tantè.

Se si decidesse di rimanere in ambito NON isolato (il che è necessario quando si vogliono più utenze che accedano allo stesso percorso) bisogna fare MOLTISSIMA attenzione ai diritti delle directory, limitandolo ai soli utenti che ci possono accedere, le policy d’accesso, un consiglio generale che posso dare è sicuramente provare attentamente quanto configurato prima di esporlo in ambito pubblico ed abilitare i Log in modo da controllare periodicamente eventuali anomalie, infine… per chi ha IIS 7 (Windows 2008)  e deve fare un uso di questo tipo riguardo all’FTP, scaricate la nuova versione di FTP 7.5, espressamente sviluppato per usi di questo tipo e totalmente gratuita. Farò presto un articolo in proposito indicando i vantaggi e le differenze rispetto al precedente.

Buon Ftp a tutti