PDA

View Full Version : Dilemma server ftp.. chi me lo risolve?


sgress
05-12-2010, 20:45
Allora ho installato vsftpd su un pc con lubuntu 10.10, nella lan funzionava tutto regolaromente, poi ho provato ad accedere dall'esterno e non riuscivo a loggarmi, mi dava password errata errore 530.
Poi ho avuto una intuizione e ho provato a usare le credenziali di accesso del router e si è loggato al router. Da cio ho dedotto che il router ha la porta 21 aperta e gestisce addirittura un server ftp tutto suo... chissa a che serve.. forse per eventuali aggiornamenti del firmware in remoto.
Ora pero non potendo usare la porta 21 per il mio server ftp ho deciso di aprire un'altra porta, ma cosi facendo mi trovo nella situazione che da locale funziona tutto a dovere mentre da remoto si connette e si logga con la macchina server ma non mi fa vedere le cartelle, ecco l'out put di filezilla client.


Comando: USER utente
Risposta: 331 Please specify the password.
Comando: PASS ****
Risposta: 230 Login successful.
Comando: SYST
Risposta: 215 UNIX Type: L8
Comando: FEAT
Risposta: 211-Features:
Risposta: EPRT
Risposta: EPSV
Risposta: MDTM
Risposta: PASV
Risposta: REST STREAM
Risposta: SIZE
Risposta: TVFS
Risposta: UTF8
Risposta: 211 End
Comando: OPTS UTF8 ON
Risposta: 200 Always in UTF8 mode.
Stato: Connesso
Stato: Lettura elenco cartelle...
Comando: PWD
Risposta: 257 "/var/ftp/utente"
Comando: TYPE I
Risposta: 200 Switching to Binary mode.
Comando: PASV
Risposta: 227 Entering Passive Mode (192,168,1,66,93,2).
Stato: Il server ha inviato una risposta passiva contenente un indirizzo non raggiungibile. Sarà usato l'indirizzo del server.
Comando: LIST
Errore: Tempo scaduto per la connessione
Errore: Non è stato possibile leggere il contenuto della cartella

Master FO
06-12-2010, 08:53
Il router ti intercetta la porta 21 per gli aggiornamenti firmware.
Se cambi la porta al tuo ftp server, la dovrai aprire anche sul router, altrimenti è chiaro che ti funziona solo in locale.

sgress
06-12-2010, 19:38
Il router ti intercetta la porta 21 per gli aggiornamenti firmware.
Se cambi la porta al tuo ftp server, la dovrai aprire anche sul router, altrimenti è chiaro che ti funziona solo in locale.

ma infatti la porta del router è aperta.. ho anche controllato con nmap.
se vedi l'output che ho postato sopra ti rendi conto che si connette anche ma non so per quale ragione se uso una porta diversa dalla 21 non ottengo la visualizzazione delle cartelle...

Tecnomiky
07-12-2010, 19:29
quando di contetti devi scrivere lindirizzo cosi
xxx.yyy.zzz.nnn: porta scelta da te

Tasslehoff
07-12-2010, 20:15
Il fatto che in locale tutto funzioni, mentre con in mezzo il router è significativo.

Normalmente (ad es in locale) il client contatta il server sulla porta 21 e invia il comando PORT al server.
Tale comando serve anche a comunicare al server la porta (random) che il client utilizza per il trasferimento dati, in questo modo il server instaura una connessione dalla porta TCP 20 verso la porta su cui il client è in ascolto.

In modalità passiva la fase iniziale di autenticazione sulla porta TCP 21 è identica, la differenza sta nel fatto che il client invia al server il comando PASV.
Ricevuto questo comando il server invia al client l'elenco delle porte TCP su cui rimane in ascolto per il trasferimento dati e il client stabilisce quindi la connessione su queste porte.

Nel tuo caso il client ha superato tutta la fase iniziale, ha inviato il comando PASV e il server gli ha risposto comunicando la porta su cui sta in ascolto per il trasferimento dati.
Il client quindi ha cercato di comunicare con il server su quella porta, ma senza successo perchè probabilmente non sono state nattate le porte che il server utilizza per la modalità passiva, non a caso ti ha risposto "Stato: Il server ha inviato una risposta passiva contenente un indirizzo non raggiungibile. Sarà usato l'indirizzo del server."

Configura sul server un range di porte accettabili per le connessioni in modalità passiva e natta anche quelle porte sul tuo router, poi riprova e facci sapere.

sgress
08-12-2010, 00:53
Il fatto che in locale tutto funzioni, mentre con in mezzo il router è significativo.

Normalmente (ad es in locale) il client contatta il server sulla porta 21 e invia il comando PORT al server.
Tale comando serve anche a comunicare al server la porta (random) che il client utilizza per il trasferimento dati, in questo modo il server instaura una connessione dalla porta TCP 20 verso la porta su cui il client è in ascolto.

In modalità passiva la fase iniziale di autenticazione sulla porta TCP 21 è identica, la differenza sta nel fatto che il client invia al server il comando PASV.
Ricevuto questo comando il server invia al client l'elenco delle porte TCP su cui rimane in ascolto per il trasferimento dati e il client stabilisce quindi la connessione su queste porte.

Nel tuo caso il client ha superato tutta la fase iniziale, ha inviato il comando PASV e il server gli ha risposto comunicando la porta su cui sta in ascolto per il trasferimento dati.
Il client quindi ha cercato di comunicare con il server su quella porta, ma senza successo perchè probabilmente non sono state nattate le porte che il server utilizza per la modalità passiva, non a caso ti ha risposto "Stato: Il server ha inviato una risposta passiva contenente un indirizzo non raggiungibile. Sarà usato l'indirizzo del server."

Configura sul server un range di porte accettabili per le connessioni in modalità passiva e natta anche quelle porte sul tuo router, poi riprova e facci sapere.

Sei un mito!! mi hai illuminato!! ho visto un po su google quali porte dovevo nattare, e ho impostato un range di porte dalla 1024 alla 1124.
Ma non si poteva impostare una sola porta per il traffico dati?
se per esempio metto come range porta minima = 1024 e porta max = 1024 quale sarebbe il problema? magari che mi limita il numero di utenti che si possono connettere?

Tasslehoff
08-12-2010, 12:55
Sei un mito!! mi hai illuminato!! ho visto un po su google quali porte dovevo nattare, e ho impostato un range di porte dalla 1024 alla 1124.
Ma non si poteva impostare una sola porta per il traffico dati?
se per esempio metto come range porta minima = 1024 e porta max = 1024 quale sarebbe il problema? magari che mi limita il numero di utenti che si possono connettere?Teoricamente dovrebbe essere sufficiente aprire anche soltanto una porta (su cui il server ftp si metta in ascolto per le connessioni ftp passive) per permettere il trasferimento di più utenti contemporanei, in pratica però normalmente i server ftp aprono una socket differente su una porta differente per ogni trasmissione dati in modalità passiva.
Quindi se aprissi una sola porta per il trasferimento dati in modalità passiva, e ci fosse già un utente connesso che sta trasferendo dati, gli eventuali ulteriori utenti connessi finirebbero in coda in attesa che l'utente connesso finisse il suo trasferimento.

sgress
08-12-2010, 18:25
Teoricamente dovrebbe essere sufficiente aprire anche soltanto una porta (su cui il server ftp si metta in ascolto per le connessioni ftp passive) per permettere il trasferimento di più utenti contemporanei, in pratica però normalmente i server ftp aprono una socket differente su una porta differente per ogni trasmissione dati in modalità passiva.
Quindi se aprissi una sola porta per il trasferimento dati in modalità passiva, e ci fosse già un utente connesso che sta trasferendo dati, gli eventuali ulteriori utenti connessi finirebbero in coda in attesa che l'utente connesso finisse il suo trasferimento.
Grazie sei stato molto chiaro, in effetti ho anche fatto la prova e funziona.
Comunque ora che so come farlo funzionare volevo chiederti se è possibile creare una interfaccia web per il server ftp in modo tale che i miei amici possano accedere in modo semplice, senza dover scaricare un client ftp che potrebbe metterli in crisi.

Tasslehoff
08-12-2010, 20:45
Grazie sei stato molto chiaro, in effetti ho anche fatto la prova e funziona.
Comunque ora che so come farlo funzionare volevo chiederti se è possibile creare una interfaccia web per il server ftp in modo tale che i miei amici possano accedere in modo semplice, senza dover scaricare un client ftp che potrebbe metterli in crisi.Non credo che vsftp permetta di creare nulla di simile, dovresti utilizzare un webserver (es apache) e creare un virtualhost che punti alle stesse directory e con il directory listening abilitato (in modo che gli utenti possano navigare tra le varie directory e scaricare i file).
Per quanto riguarda l'autenticazione puoi utilizzare la normale autenticazione mediante file htpasswd creando utenti e password uguali a quelli del server ftp.

Cmq se i tuoi amici hanno problemi possono sempre utilizzare Internet Explorer che ha un client ftp integrato, potresti passargli le url specificando username e password in modo che debbano semplicemente fare copia&incolla nella barra degli indirizzi del browser.

ad es:
ftp://utente:password@hostname:/directory/