Debug di connessione remota ad un MS FTP Server da Mac OSX

Un paio di sabati fa ho avuto la necessità di cambiare l’indirizzo IP del mio housed server verso una classe di indirizzi completamente differente. L’operazione che di per se – a parte le operazioni di cambio DNS richieste per il caso specifico – non dovrebbe comportare alcunché, mi ha fatto arrovellare il cervello per una buona ora cercando di fare del debug e capire perchè – improvvisamente – dopo questo cambio non avevo più la possibilità di scrivere file sul server remoto, ma solo di leggerli.

La cosa buffa, infatti, era proprio questa, che nonostante riuscissi a collegarmi al server FTP, nonostante il mio nome utente e password fossero corretti, nonostante mi venisse restituita la lista dei file presenti sul server, non c’era verso di scrivere niente. Ricevevo sempre un messaggio di errore di transfer incomplete senza però saperne la causa.

La necessità di riavere indietro un servizio funzionante non ve la sto neanche a raccontare, quindi mi sono armato di santa pazienza ed ho iniziato ad investigare.

La prima cosa a cui ho pensato è stata quella di verificare il servizio del firewall del mio Windows Server 2003. In un primo momento non gli era nemmeno piaciuto il cambio di indirizzo fatto, perché addirittura abilitando o disabilitando il servizio, avevo comunque la possibilità di ricevere una risposta dal server, cosa questa assolutamente anormale. Primo step, quindi, riavviare il servizio Windows Firewall (ICS). Subito dopo, le cose sono tornate apposto, quanto meno per l’aspetto servizio disabilitato – accesso negato. Però continuavo a non poter scrivere file.

A questo punto ho cercato tra le righe del log files; nulla, semplicemente tante righe che mostravano il processo di autenticazione, ma nulla in merito alla scrittura. La cosa era al quanto strana. Come è possibile che non vi sia nemmeno una riga che dica accesso negato, permessi non validi e roba simile?

Prova successiva, disabilitare – temporaneamente il firewall – e vedere se tutto funziona. Ahimè si, senza firewall ero in grado di scrivere senza problemi. Almeno avevo compreso su cosa dovevo concentrarmi.

Ripasso al setaccio tutte le impostazioni e non c’è nulla di anomalo. A questo punto tento per la strada della replicabilità, ovvero, riesco a connettermi tramite un altro windows? La risposta è si, quindi c’è qualcosa che non va nella sessione che si stabilisce tra il mio client FTP per Mac – CyberDuck – e il server FTP Microsoft remoto. Ma cosa? Cyberduck nella sua session log non mostra errori. Provo allora ad utilizzare il Terminal per vedere se ottengo delle informazioni in più, ed effettivamente ottengo questo:

ftp> put bookmarks.html
local: bookmarks.html remote: bookmarks.html
500 'EPSV': command not understood
421 Service not available, remote server has closed connection.

Problema trovato: non riesco più a collegarmi in modalità passiva, infatti tentando di nuovo una connessione passiva con un client windows (che di default, invece, si imposta su attiva) ottenevo il medesimo problema.

Il codice di errore evidenziato – 500 e EPSV – sono per il relativo comando che viene utilizzato dal client per modificare il tipo di connessione da Attiva – default – a passiva (Quando in sostanza vedete scritto tipo di connessione automatica, sappiate che questo è quello che succede).

Modalità quest’ultima implementata per una risoluzione di molte problematiche celate dietro l’uso congiunto del servizio firewall assieme a quello FTP. Per chiarimenti sulla connessione attiva e passiva, consiglio questo documento in inglese.

Infatti, modificando le impostazioni del client, forzandolo quindi ad una connessione attiva, ed effettivamente tutto funziona.

A questo punto configurare nuovamente il server FTP di Microsoft per la modalità passiva e tutto torna a funzionare. Come? Si può seguire questa KB della Microsoft per impostare il range di porte che si vogliono far utilizzare al servizio FTP, ma ovviamente il tutto NON BASTA, perchè sul documento non si fa minimo accenno al fatto che bisogna forzare la mano al firewall indicandogli che non deve più accettare connessioni sulla porta 21 come di default.

Come fare? Passo passo:

Si deve aprire la finestra di configurazione del Firewall, quindi andare sulle proprietà avanzate, selezionare le proprietà dell’adattatore di rete locale, entrare nelle proprietà e disabilitare il servizio di FTP Server. Sembra un controsenso lo sò, ma fidatevi!

A questo punto andate nella schermata delle eccezioni, scegliete aggiungi servizio, fate sfoglia e puntate il percorso su C:\Windows\system32\intesrv e selezionate il file InetInfo.exe che altro non è che l’IIS Admin Service.

Fatto questo riavviate la macchina e vedrete che sarete in grado di connettervi in modalità passiva al vostro server FTP Microsoft.

Alle volte sono cose che capitano, ma se non altro, tra le varie analisi, purtroppo ho trovato nei log alcuni tentativi di accesso non desiderato. Qualcuno che ha tentato di farmi del (in)sano home-defacing?

Technorati tags: , ,