• User Newbie

    Problema connessione su client FTP con VSFTPD

    Salve a tutti,
    Ho un problema urgentissimo da risolvere.
    Ho installato VSFTPD server su debian che utilizza utenti virtuali da un database MySQL, l'ho configurato ed ho fatto un test di accesso creando un utente con:

    ftp localhost

    Connected to localhost.
    220 (vsFTPd 2.0.7)
    Name (localhost:root): <nome_utente>
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp>

    E fin qui tutto Ok mi funziona tutto.

    Il problema sorge quando vado a configurare il client FTP (ho utilizzato FileZilla e WinSCP), non riesce a collegarsi al server:

    Stato: Connessione a xx.xxx.xxx.xx:21...
    Errore: Tempo scaduto per la connessione
    Errore: Impossibile collegarsi al server

    Questi sono i passaggi che ho effettuato:

    1. Ho installato tutti i pacchetti necessari:

    apt-get install vsftpd libpam-mysql mysql-server mysql-client phpmyadmin

    1. Ho creato il database MySQL per vsftpd, con i privilegi dell'utente e la tabella che memorizza gli utenti per l'accesso FTP:

    CREATE DATABASE vsftpd;
    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.
    TO 'vsftpd'@'localhost' IDENTIFIED BY '<password>';
    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.
    TO 'vsftpd'@'localhost.localdomain' IDENTIFIED BY '<password>';
    FLUSH PRIVILEGES;

    USE vsftpd;

    CREATE TABLE accounts (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    username VARCHAR( 30 ) NOT NULL ,
    pass VARCHAR( 50 ) NOT NULL ,
    UNIQUE (
    username
    )
    ) ENGINE = MYISAM ;
    **

    1. Ho confugurato il file /etc/vsftpd.conf:

    **
    listen=YES
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=027
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    nopriv_user=vsftpd
    chroot_local_user=YES
    secure_chroot_dir=/var/run/vsftpd
    pam_service_name=vsftpd
    rsa_cert_file=/etc/ssl/certs/vsftpd.pem
    guest_enable=YES
    guest_username=vsftpd
    local_root=/var/www/$USER
    user_sub_token=$USER
    virtual_use_local_privs=YES
    **

    1. Ho configurato il file /etc/pam.d/vsftpd in modo che utilizzi il database MySQL per autenticare gli utenti virtuali FTP:

    auth required pam_mysql.so user=vsftpd passwd=password host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2
    account required pam_mysql.so user=vsftpd passwd=password host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2

    1. Ho riavviato VSFTPD:

    /etc/init.d/vsftpd restart

    1. Ho creato l'utente:

    INSERT INTO accounts (username, pass) VALUES('testuser', PASSWORD('secret'));

    1. Ho provato a connettermi tramite client FTP:

    hostname: nome del mio server, porta: 21, nome utente: 'testuser', e password: 'secret'.

    E qui non si connette...

    Ho pensato a probabili cause:

    • Firewall o qualcosa del genere che bloccano la porta 21.
    • Oppure ho notato che facendo "ifconfig" non risulta l'interfaccia ethernet eth0, ma risulta questo:

    ifconfig

    dummy0 Link encap:Ethernet HWaddr a2:20:19:e7:74:31
    UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:0 (0.0 B) TX bytes:654 (654.0 B)

    dummy0:1 Link encap:Ethernet HWaddr a2:20:19:e7:74:31
    inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
    UP BROADCAST RUNNING NOARP MTU:1500 Metric:1

    lo Link encap:Local Loopback
    inet addr:127.0.0.1 Mask:255.0.0.0
    UP LOOPBACK RUNNING MTU:16436 Metric:1
    RX packets:4463 errors:0 dropped:0 overruns:0 frame:0
    TX packets:4463 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:374576 (365.7 KiB) TX bytes:374576 (365.7 KiB)

    Grazie.
    Saluti.


  • User Attivo

    Ciao pepox,

    In effetti non si vede l'interfaccia eth0... e senza interfaccia di rete non facciamo nulla 🙂

    • Verifica che l'interfaccia non sia down: fai ifconfig -a , e se vedi eth0, fai un ifconfig eth0 up

    • Se non la vedi, guarda se hai il modulo giusto per la tua scheda. Fai lspci per vedere che scheda di rete hai, e cerca di caricare il modulo.


  • User Newbie

    Ho risolto !!!!
    Il problema era la firewall che bloccava la porta 21.
    Ho caricato una serie di regole iptables per sbloccare l'inoltro verso la porta 21 del server

    Grazie lo stesso per la disponibilità.