Problema connessione su client FTP con VSFTPD

3 risposte [Ultimo contenuto]
Ritratto di pepox83
pepox83
(Newbie)
Offline
Newbie
Iscritto: 09/02/2011
Messaggi: 3

Salve a tutti,
Ho un problema urgentissimo da risolvere.
Ho installato VSFTPD server 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):
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

2) 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 '';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost.localdomain' IDENTIFIED BY '';
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 ;

3) 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

4) 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

5) Ho riavviato VSFTPD:

/etc/init.d/vsftpd restart

6) Ho creato l'utente:

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

7) 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 Cool TX bytes:654 (654.0 Cool

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.

Distro: Debian 5.0.8

Ritratto di mcortese
mcortese
(Moderatore)
Offline
Moderatore
Iscritto: 27/02/2009
Messaggi: 2913

Il ping funziona?

Ritratto di pepox83
pepox83
(Newbie)
Offline
Newbie
Iscritto: 09/02/2011
Messaggi: 3

mcortese ha scritto:

Il ping funziona?

ho provato a fare:

# ping 62.xxx.xxx.xx
PING 62.xxx.xxx.xx (62.xxx.xxx.xx) 56(84) bytes of data.
64 bytes from 62.xxx.xxx.xx: icmp_seq=1 ttl=64 time=0.017 ms
64 bytes from 62.xxx.xxx.xx: icmp_seq=2 ttl=64 time=0.010 ms
64 bytes from 62.xxx.xxx.xx: icmp_seq=3 ttl=64 time=0.010 ms
64 bytes from 62.xxx.xxx.xx: icmp_seq=4 ttl=64 time=0.009 ms
64 bytes from 62.xxx.xxx.xx: icmp_seq=5 ttl=64 time=0.009 ms
64 bytes from 62.xxx.xxx.xx: icmp_seq=6 ttl=64 time=0.010 ms
64 bytes from 62.xxx.xxx.xx: icmp_seq=7 ttl=64 time=0.010 ms
64 bytes from 62.xxx.xxx.xx: icmp_seq=8 ttl=64 time=0.009 ms
64 bytes from 62.xxx.xxx.xx: icmp_seq=9 ttl=64 time=0.010 ms
64 bytes from 62.xxx.xxx.xx: icmp_seq=10 ttl=64 time=0.009 ms
^C
--- 62.xxx.xxx.xx ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 8999ms
rtt min/avg/max/mdev = 0.009/0.010/0.017/0.003 ms

sembra che va

Ritratto di pepox83
pepox83
(Newbie)
Offline
Newbie
Iscritto: 09/02/2011
Messaggi: 3

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à.