Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Accesso FTP su porta 110 (pop3)

    Buongiorno,
    ho un cliente che vorrebbe sincronizzare alcuni files che si trovano su un server host a pagamento (dove ha il suo sito web) con quelli sul suo server privato (Windows Server 2003).
    Il problema è che la società proprietaria dell'host a pagamento ha abilitato gli accessi a computer esterni soltanto per le porte 80 (http), 110 (pop3), 143 (imap), 443 (https), 995 (pop3 over ssl) e 3306 (MySQL).
    Volevo connettermi via ftp utilizzando un semplice script php ma, non avendo la porta 21 abilitata, non so come fare...
    Mi è stato chiesto di non utilizzare la porta 443 perchè è quella che utilizza l'amministratore di rete per configurare router e firewall.
    FileZilla Server non mi permette di configurare le porte 80 e 3306.
    A questo punto, mi chiedevo se fosse possibile utilizzare per esempio la porta 110 e connettermi comunque via ftp.
    Ho già fatto delle prove e per connettersi, si connette, solo che poi i comandi ftp non vengono eseguiti (tipo nlist), probabilmente non c'è compatibilità tra il protocollo pop3 e quello ftp.

    C'è un modo per poter utilizzare le funzioni ftp di php o devo proprio cambiare tipo di connessione? Cosa mi suggerite eventualmente?

    Grazie!
    Michele
    King Of The Kill

  2. #2
    Moderatore di Altri Server + Database L'avatar di SUPERMIKY
    Registrato dal
    Jun 2001
    Messaggi
    1,706
    prova un accesso in modalità passiva, FTP si basa su due porte: una per la connessione e i comandi, l'altra per il flusso di dati... (di solito sono rispettivamente TCP/21 e TCP/20)

    http://slacksite.com/other/ftp.html
    vCard | CV | Social networks
    No, in privato non ti aiuto.

  3. #3
    sì, avevo provato, ma il server mi blocca tutte le richieste di accesso alla porta 21 di computer esterni...
    Le uniche richieste di connessione verso l'esterno abilitate sono quelle verso queste porte: 80, 110, 143, 443, 995 e 3306
    Michele
    King Of The Kill

  4. #4
    Moderatore di Altri Server + Database L'avatar di SUPERMIKY
    Registrato dal
    Jun 2001
    Messaggi
    1,706
    Originariamente inviato da KingOfTheKill
    sì, avevo provato, ma il server mi blocca tutte le richieste di accesso alla porta 21 di computer esterni...
    Le uniche richieste di connessione verso l'esterno abilitate sono quelle verso queste porte: 80, 110, 143, 443, 995 e 3306
    ...e questo l'abbiamo capito.
    ovviamente però sul server devi configurare un server ftp che invece di rispondere sulla 21 risponda sulla 110.

    dopodichè provi la connessione PASV.
    vCard | CV | Social networks
    No, in privato non ti aiuto.

  5. #5
    Ops, scusa, avevo interpretato male quello che avevi messo tra parentesi. Credevo fosse un consiglio, tipo: usa TCP/21 e TCP/20!

    Allora, correggimi se sbaglio, io ho il server A (client) e il server B (server remoto FTP).
    Dico ad A di connettersi alla porta 110 del server B, e imposto B in modo che risponda dicendo: "la porta per lo scambio dati è di nuovo la 110".
    Impostando la 110 anche per i dati, però, il log del server mi dice che non viene attivata la modalità PASV.
    Impostando invece, ad esempio, la 143 per il tunnel dati, la modalità PASV funziona.
    Purtroppo in entrambi i casi, ho il problema di sempre: quando lancio il comando NLST, ottengo questo errore: "425 Can't open data connection."

    Uso FileZilla server. Ho impostato in "General settings":
    Listen on this ports: 110
    e sotto "Passive mode settings":
    Use custom port range: 110 - 110 (oppure per l'altra prova: 143-143)


    Comunque, allego le due righe di codice che uso per connettermi. Se c'è la connessione al server, effettuo una connessione passiva con ftp_pasv():

    Codice PHP:
    <?php
    $myFTPServer 
    "***.***.***.***";   // IP del server remoto
    $port 110;
    $myDir "";
    $myFiles = array();

    $nome_utente $_POST['nome_utente'];
    $password $_POST['password'];

    $secureConnection false// true;
    $stream false;

    if (
    $secureConnection) {
       
    $stream ftp_ssl_connect($myFTPServer$port);
    } else {
       
    $stream ftp_connect($myFTPServer$port);
    }
    if (
    $stream) {
       if (@
    ftp_login($stream$nome_utente$password)) {
          
    ftp_pasv($streamtrue);
          
    $myFiles ftp_nlist($stream$myDir);
          echo 
    "Connesso!
    \n"
    ;
       } else {
          echo 
    "Autorizzazione negata.\n";
          exit;
       }
    } else {
       echo 
    "Impossibile collegarsi al server.\n";
       exit;
    }

    foreach (
    $myFiles as $value) {
       echo 
    $value "
    \n"
    ;
    }
    ?>


    Allego anche i due log del server.

    Porta 110 per i comandi e 110 per i dati:

    Codice PHP:
    (00001715/01/2010 17:42:53 - (not logged in) (81.88.49.35)> Connectedsending welcome message...
    (
    00001715/01/2010 17:42:53 - (not logged in) (81.88.49.35)> 220-Benvenuto nel Server FTP
    (00001715/01/2010 17:42:53 - (not logged in) (81.88.49.35)> USER prova
    (00001715/01/2010 17:42:53 - (not logged in) (81.88.49.35)> 331 Password required for prova
    (00001715/01/2010 17:42:54 - (not logged in) (81.88.49.35)> PASS *****
    (
    00001715/01/2010 17:42:54 prova (81.88.49.35)> 230 Logged on
    (00001715/01/2010 17:42:54 prova (81.88.49.35)> PASV
    (00001715/01/2010 17:42:54 prova (81.88.49.35)> 421 Can\\'t create socket
    (000017) 15/01/2010 17:42:54 - prova (81.88.49.35)> TYPE A
    (000017) 15/01/2010 17:42:54 - prova (81.88.49.35)> 200 Type set to A
    (000017) 15/01/2010 17:42:54 - prova (81.88.49.35)> PORT 81,88,49,35,170,218
    (000017) 15/01/2010 17:42:54 - prova (81.88.49.35)> 200 Port command successful
    (000017) 15/01/2010 17:42:54 - prova (81.88.49.35)> NLST
    (000017) 15/01/2010 17:42:54 - prova (81.88.49.35)> 150 Opening data channel for directory list.
    (000017) 15/01/2010 17:43:04 - prova (81.88.49.35)> 425 Can\\'
    t open data connection.
    (
    00001715/01/2010 17:44:24 prova (81.88.49.35)> disconnected
    Porta 110 per i comandi e 143 per i dati:

    Codice PHP:
    (00001815/01/2010 17:46:17 - (not logged in) (81.88.49.27)> Connectedsending welcome message...
    (
    00001815/01/2010 17:46:17 - (not logged in) (81.88.49.27)> 220-Benvenuto nel Server FTP
    (00001815/01/2010 17:46:17 - (not logged in) (81.88.49.27)> USER prova
    (00001815/01/2010 17:46:17 - (not logged in) (81.88.49.27)> 331 Password required for prova
    (00001815/01/2010 17:46:17 - (not logged in) (81.88.49.27)> PASS *****
    (
    00001815/01/2010 17:46:17 prova (81.88.49.27)> 230 Logged on
    (00001815/01/2010 17:46:18 prova (81.88.49.27)> PASV
    (00001815/01/2010 17:46:18 prova (81.88.49.27)> 227 Entering Passive Mode (192,168,1,3,0,143)
    (
    00001815/01/2010 17:46:18 prova (81.88.49.27)> TYPE A
    (00001815/01/2010 17:46:18 prova (81.88.49.27)> 200 Type set to A
    (00001815/01/2010 17:46:39 prova (81.88.49.27)> NLST
    (00001815/01/2010 17:46:39 prova (81.88.49.27)> 425 Can\\'t open data connection.
    (000018) 15/01/2010 17:46:39 - prova (81.88.49.27)> disconnected. 
    Michele
    King Of The Kill

  6. #6
    Moderatore di Altri Server + Database L'avatar di SUPERMIKY
    Registrato dal
    Jun 2001
    Messaggi
    1,706
    attenzione però, qui abbiamo un secondo problema:
    codice:
    227 Entering Passive Mode (192,168,1,3,0,143)
    mi indica che il server è nattato con ip privato 192.168.1.3.

    Questo è MALE perchè, per definizione della modalità PASV, il server deve necessariamente comunicare il suo ip reale perchè il tutto funzioni.

    Allora mi sa che non ho capito io qualcosa, mi puoi postare i log del tutto senza usare la PASV ma collegandosi comunque sulla 110?
    vCard | CV | Social networks
    No, in privato non ti aiuto.

  7. #7
    Sì, sono dietro ad un router... spero non sia un problema insormontabile...
    Ecco il log che mi hai chiesto (porta 110, senza PASV):

    Codice PHP:
    (00000218/01/2010 15:02:30 - (not logged in) (81.88.49.34)> Connectedsending welcome message...
    (
    00000218/01/2010 15:02:30 - (not logged in) (81.88.49.34)> 220-Benvenuto nel Server FTP
    (00000218/01/2010 15:02:30 - (not logged in) (81.88.49.34)> USER prova
    (00000218/01/2010 15:02:30 - (not logged in) (81.88.49.34)> 331 Password required for prova
    (00000218/01/2010 15:02:30 - (not logged in) (81.88.49.34)> PASS *****
    (
    00000218/01/2010 15:02:30 prova (81.88.49.34)> 230 Logged on
    (00000218/01/2010 15:02:30 prova (81.88.49.34)> TYPE A
    (00000218/01/2010 15:02:30 prova (81.88.49.34)> 200 Type set to A
    (00000218/01/2010 15:02:30 prova (81.88.49.34)> PORT 81,88,49,34,196,27
    (00000218/01/2010 15:02:30 prova (81.88.49.34)> 200 Port command successful
    (00000218/01/2010 15:02:30 prova (81.88.49.34)> NLST
    (00000218/01/2010 15:02:30 prova (81.88.49.34)> 150 Opening data channel for directory list.
    (
    00000218/01/2010 15:02:40 prova (81.88.49.34)> 425 Can't open data connection.
    (000002) 18/01/2010 15:04:00 - prova (81.88.49.34)> disconnected. 
    Michele
    King Of The Kill

  8. #8
    Moderatore di Altri Server + Database L'avatar di SUPERMIKY
    Registrato dal
    Jun 2001
    Messaggi
    1,706
    Originariamente inviato da KingOfTheKill
    Sì, sono dietro ad un router... spero non sia un problema insormontabile...
    riesci a fare la stessa prova con un'altra connessione, dietro ad un altro router per intenderci?
    vCard | CV | Social networks
    No, in privato non ti aiuto.

  9. #9
    Forse sì, ma non oggi e domani. Mi sa che mi tocca lasciare in sospeso questo thread per un paio di giorni...

    Appena riesco a fare la prova ti faccio sapere
    Intanto, grazie di tutto!
    Michele
    King Of The Kill

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.