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:
- Ho installato tutti i pacchetti necessari:
apt-get install vsftpd libpam-mysql mysql-server mysql-client phpmyadmin
- 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 ;
**
- 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
**
- 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
- Ho riavviato VSFTPD:
/etc/init.d/vsftpd restart
- Ho creato l'utente:
INSERT INTO accounts (username, pass) VALUES('testuser', PASSWORD('secret'));
- 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.