web-dev-qa-db-fra.com

vsftpd PASV configuration configurée, mais ne fonctionne toujours pas

J'ai donc fait des recherches sur FTP/FTPS et j'ai essayé de configurer un serveur FTPS fonctionnel. Pour utiliser FTP (S), j'utilisais le service vsftpd et mon serveur est une instance Amazon EC2 exécutant Ubuntu 14.04.

masq@ftp:~$ uname -a
Linux ftp 3.15.0-031500rc2-generic #201404201435 SMP Sun Apr 20 18:36:18 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Maintenant, le fichier de configuration semble assez simple à configurer. COMMENT-JAMAIS, les choses .. ne fonctionnent pas correctement ... pour une raison quelconque ...

Le problème que je voudrais aborder dans ce fil est le problème de la configuration passive par rapport à la configuration active. Maintenant, j'ai activé le mode pasv dans le fichier de configuration. J'ai spécifié quelques ports que pasv doit utiliser, et j'ai spécifié l'adresse sur laquelle il se trouve ... etc. (je vais poster la configuration de mon fichier ci-dessous) et pourtant ... J'ai toujours cette erreur quand j'émets un "ls" commande sur ftp! Voici un exemple de cela (je fais juste un transfert FTP à localhost afin que je sache que les pare-feu ne gênent pas (que fait veille à ce que le pare-feu ne gêne pas .. . droite?!)):

masq@ftp:~$ ftp localhost
Connected to localhost.
220 (vsFTPd 3.0.2)
Name (localhost:masq): john
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-rw-r--    1 1000     1000            0 Feb 18 04:55 random
226 Directory send OK.
ftp> passive
Passive mode on.
ftp> ls
227 Entering Passive Mode (xxx,xxx,xxx,xxx,46,229).
ftp: connect: Connection refused
ftp>

et voici mon fichier de configuration ...

# allow anyone to connect?
anonymous_enable=NO

# is it turned on?
listen=YES
xferlog_enable=YES
log_ftp_protocol=YES

# allow people to upload?
write_enable=NO

# allow people to download?
download_enable=YES

# passive/active mode configuration
port_enable=YES
pasv_enable=YES
pasv_min_port=12000
pasv_max_port=12050
pasv_address=<retracted public IP>
# if pasv_address_resolve=YES, pasv_address should be a name, e.g. ftp.blah.com
#pasv_addr_resolve=YES

# local account enable
local_enable=YES
chroot_local_user=YES
user_sub_token=$USER
local_root=/home/$USER
allow_writeable_chroot=YES

# ssl config
#ssl_enable=YES

Donc ... j'ai pasv_enable = YES ... et toutes les autres options sont définies de la même manière que toutes mes recherches me l'ont dit, et pourtant, elles ne peuvent pas fonctionner en mode pasv. Est-ce que quelqu'un sait pourquoi cela ne fonctionne pas? > _>

J'ai essayé d'accéder à ce serveur à partir d'Internet en utilisant un ordinateur qui ne fonctionnera pas avec des connexions actives et qui ne parvient pas à obtenir les listes de répertoires, c'est-à-dire que pasv ne fonctionne définitivement pas. : /

Merci les gars, je suis vraiment perplexe avec celui-ci. Je peux fournir plus d'informations si nécessaire.

P.S. J'ai configuré mon groupe de sécurité ec2 pour ouvrir les ports 12000-12050, 20-21, TCP ... donc je ne pense pas que ce soit un problème non plus.

EDIT 1: la version Ubuntu est 14.04 LTS Trusty. vsftpd: version 3.0.2

masq@ftp:~$ Sudo cat /var/log/vsftpd.log                                  
Thu Mar 12 00:35:38 2015 [pid 19825] 
CONNECT: Client "127.0.0.1"          
Thu Mar 12 00:35:46 2015 [pid 19824] 
[masq] OK LOGIN: Client "127.0.0.1"  
Thu Mar 12 00:37:19 2015 [pid 19834] 
CONNECT: Client "127.0.0.1"          
Thu Mar 12 00:37:24 2015 [pid 19833] 
[masq] OK LOGIN: Client "127.0.0.1"

^ Il y a un groupe de personnes se connectant via localhost et demandant un répertoire. Ensuite, je me suis déconnecté puis reconnecté et j'ai émis la commande passive. Il a échoué malgré le fait que pasv_enable = YES soit présent dans le fichier de configuration, comme indiqué dans le message d'origine.

Quelque chose d'autre que j'ai remarqué est que si je cours juste

$Sudo vsftpd
500 OOPS: could not bind listening IPv4 socket

Je reçois cette erreur. Encore une fois, j'utilise Amazon ec2 et mon adresse pasv_address = xxx.xxx.xxx.xxx est mon adresse IP publique, pas mon adresse privée. savez-vous où, dans les journaux, je pourrais trouver des journaux plus détaillés sur ce que cet échec de la liaison à l'erreur de socket? Je viens de découvrir cela depuis que j'ai posté et je commence à penser que c'est la cause de mon problème.

EDIT_2: J'ai essayé de me connecter depuis une source externe et en local (il suffit de faire un FTP sur localhost sur mon serveur)

Wed Mar 18 01:36:10 2015 [pid 8194] CONNECT: Client "127.0.0.1"
Wed Mar 18 01:36:10 2015 [pid 8194] FTP response: Client "127.0.0.1", "220 (vsFTPd 3.0.2)"
Wed Mar 18 01:36:16 2015 [pid 8194] FTP command: Client "127.0.0.1", "USER masq"
Wed Mar 18 01:36:16 2015 [pid 8194] [masq] FTP response: Client "127.0.0.1", "331 Please specify the password."
Wed Mar 18 01:36:20 2015 [pid 8194] [masq] FTP command: Client "127.0.0.1", "PASS <password>"
Wed Mar 18 01:36:20 2015 [pid 8193] [masq] OK LOGIN: Client "127.0.0.1"
Wed Mar 18 01:36:20 2015 [pid 8195] [masq] FTP response: Client "127.0.0.1", "230 Login successful."
Wed Mar 18 01:36:20 2015 [pid 8195] [masq] FTP command: Client "127.0.0.1", "SYST"
Wed Mar 18 01:36:20 2015 [pid 8195] [masq] FTP response: Client "127.0.0.1", "215 UNIX Type: L8"
Wed Mar 18 01:36:22 2015 [pid 8195] [masq] FTP command: Client "127.0.0.1", "PORT 127,0,0,1,204,221"
Wed Mar 18 01:36:22 2015 [pid 8195] [masq] FTP response: Client "127.0.0.1", "200 PORT command successful. Consider using PASV."
Wed Mar 18 01:36:22 2015 [pid 8195] [masq] FTP command: Client "127.0.0.1", "LIST"
Wed Mar 18 01:36:22 2015 [pid 8195] [masq] FTP response: Client "127.0.0.1", "150 Here comes the directory listing."
Wed Mar 18 01:36:22 2015 [pid 8195] [masq] FTP response: Client "127.0.0.1", "226 Directory send OK."
Wed Mar 18 01:36:35 2015 [pid 8195] [masq] FTP command: Client "127.0.0.1", "PASV"
Wed Mar 18 01:36:35 2015 [pid 8195] [masq] FTP response: Client "127.0.0.1", "227 Entering Passive Mode (52,10,22,18,46,246)."
Wed Mar 18 01:36:47 2015 [pid 8195] [masq] FTP command: Client "127.0.0.1", "QUIT"
Wed Mar 18 01:36:47 2015 [pid 8195] [masq] FTP response: Client "127.0.0.1", "221 Goodbye."
Wed Mar 18 01:58:11 2015 [pid 8257] CONNECT: Client "127.0.0.1"
Wed Mar 18 01:58:11 2015 [pid 8257] FTP response: Client "127.0.0.1", "220 (vsFTPd 3.0.2)"
Wed Mar 18 01:58:13 2015 [pid 8257] FTP command: Client "127.0.0.1", "USER john"
Wed Mar 18 01:58:13 2015 [pid 8257] [john] FTP response: Client "127.0.0.1", "331 Please specify the password."
Wed Mar 18 01:58:15 2015 [pid 8257] [john] FTP command: Client "127.0.0.1", "PASS <password>"
Wed Mar 18 01:58:15 2015 [pid 8256] [john] OK LOGIN: Client "127.0.0.1"
Wed Mar 18 01:58:15 2015 [pid 8258] [john] FTP response: Client "127.0.0.1", "230 Login successful."
Wed Mar 18 01:58:15 2015 [pid 8258] [john] FTP command: Client "127.0.0.1", "SYST"
Wed Mar 18 01:58:15 2015 [pid 8258] [john] FTP response: Client "127.0.0.1", "215 UNIX Type: L8"
Wed Mar 18 01:58:16 2015 [pid 8258] [john] FTP command: Client "127.0.0.1", "PORT 127,0,0,1,183,134"
Wed Mar 18 01:58:16 2015 [pid 8258] [john] FTP response: Client "127.0.0.1", "200 PORT command successful. Consider using PASV."
Wed Mar 18 01:58:16 2015 [pid 8258] [john] FTP command: Client "127.0.0.1", "LIST"
Wed Mar 18 01:58:16 2015 [pid 8258] [john] FTP response: Client "127.0.0.1", "150 Here comes the directory listing."
Wed Mar 18 01:58:16 2015 [pid 8258] [john] FTP response: Client "127.0.0.1", "226 Directory send OK."
Wed Mar 18 01:58:22 2015 [pid 8258] [john] FTP command: Client "127.0.0.1", "QUIT"
Wed Mar 18 01:58:22 2015 [pid 8258] [john] FTP response: Client "127.0.0.1", "221 Goodbye."
Wed Mar 18 02:14:44 2015 [pid 8374] CONNECT: Client "xxx.xxx.2.43"
Wed Mar 18 02:14:44 2015 [pid 8374] FTP response: Client "xxx.xxx.2.43", "220 (vsFTPd 3.0.2)"
Wed Mar 18 02:14:46 2015 [pid 8374] FTP command: Client "xxx.xxx.2.43", "USER john"
Wed Mar 18 02:14:46 2015 [pid 8374] [john] FTP response: Client "xxx.xxx.2.43", "331 Please specify the password."
Wed Mar 18 02:14:49 2015 [pid 8374] [john] FTP command: Client "xxx.xxx.2.43", "PASS <password>"
Wed Mar 18 02:14:49 2015 [pid 8373] [john] OK LOGIN: Client "xxx.xxx.2.43"
Wed Mar 18 02:14:49 2015 [pid 8375] [john] FTP response: Client "xxx.xxx.2.43", "230 Login successful."
Wed Mar 18 02:14:49 2015 [pid 8375] [john] FTP command: Client "xxx.xxx.2.43", "SYST"
Wed Mar 18 02:14:49 2015 [pid 8375] [john] FTP response: Client "xxx.xxx.2.43", "215 UNIX Type: L8"
Wed Mar 18 02:14:52 2015 [pid 8375] [john] FTP command: Client "xxx.xxx.2.43", "PASV"
Wed Mar 18 02:14:52 2015 [pid 8375] [john] FTP response: Client "xxx.xxx.2.43", "227 Entering Passive Mode (52,10,22,18,47,5)."
Wed Mar 18 02:14:52 2015 [pid 8375] [john] FTP command: Client "xxx.xxx.2.43", "LIST"
Wed Mar 18 02:14:52 2015 [pid 8375] [john] FTP response: Client "xxx.xxx.2.43", "150 Here comes the directory listing."
Wed Mar 18 02:14:52 2015 [pid 8375] [john] FTP response: Client "xxx.xxx.2.43", "226 Directory send OK."
Wed Mar 18 02:15:06 2015 [pid 8375] [john] FTP command: Client "xxx.xxx.2.43", "PORT 10,0,0,2,199,11"
Wed Mar 18 02:15:06 2015 [pid 8375] [john] FTP response: Client "xxx.xxx.2.43", "500 Illegal PORT command."
Wed Mar 18 02:15:21 2015 [pid 8375] [john] FTP command: Client "xxx.xxx.2.43", "PORT 10,0,0,2,235,22"
Wed Mar 18 02:15:21 2015 [pid 8375] [john] FTP response: Client "xxx.xxx.2.43", "500 Illegal PORT command."
Wed Mar 18 02:15:24 2015 [pid 8375] [john] FTP command: Client "xxx.xxx.2.43", "PASV"
Wed Mar 18 02:15:24 2015 [pid 8375] [john] FTP response: Client "xxx.xxx.2.43", "227 Entering Passive Mode (52,10,22,18,46,232)."
Wed Mar 18 02:15:24 2015 [pid 8375] [john] FTP command: Client "xxx.xxx.2.43", "LIST"
Wed Mar 18 02:15:24 2015 [pid 8375] [john] FTP response: Client "xxx.xxx.2.43", "150 Here comes the directory listing."
Wed Mar 18 02:15:24 2015 [pid 8375] [john] FTP response: Client "xxx.xxx.2.43", "226 Directory send OK."
Wed Mar 18 02:15:26 2015 [pid 8375] [john] FTP command: Client "xxx.xxx.2.43", "PASV"
Wed Mar 18 02:15:26 2015 [pid 8375] [john] FTP response: Client "xxx.xxx.2.43", "227 Entering Passive Mode (52,10,22,18,46,254)."
Wed Mar 18 02:15:27 2015 [pid 8375] [john] FTP command: Client "xxx.xxx.2.43", "LIST"
Wed Mar 18 02:15:27 2015 [pid 8375] [john] FTP response: Client "xxx.xxx.2.43", "150 Here comes the directory listing."
Wed Mar 18 02:15:27 2015 [pid 8375] [john] FTP response: Client "xxx.xxx.2.43", "226 Directory send OK."
Wed Mar 18 02:15:35 2015 [pid 8375] [john] FTP command: Client "xxx.xxx.2.43", "QUIT"
Wed Mar 18 02:15:35 2015 [pid 8375] [john] FTP response: Client "xxx.xxx.2.43", "221 Goodbye."

Voici le dernier journal (j'ai cependant modifié mon adresse IP externe). Il est intéressant de noter que je pouvais passer de mon client externe au passif, ce qui n’était pas le cas lorsque j’ai essayé de me connecter au serveur lui-même. Cependant, le client externe que j'ai utilisé était un autre serveur Ubuntu 14.04 que j'ai. Lorsque j'ai essayé de me connecter en externe à partir de l'un de mes clients Windows en utilisant FileZilla ou WinSCP (en mode FTP), je ne pouvais plus me connecter AT ALL (passif ou actif) et ces connexions échouées ne s'affichent pas. dans les journaux du tout non plus. Le serveur auquel j'ai réussi à me connecter se trouve sur le même réseau local que le client Windows, de sorte que tout problème de réseau doit être présent avec les deux boîtes. Auparavant, je pouvais me connecter à mon client Windows à l'aide de connexions actives, mais pour une raison quelconque, cela ne fonctionnait même pas.

2
masquarainian

Le nouveau module de noyau seccomp est utilisé automatiquement par vsftpd à partir de la version 3.0.0. vsftpd est un peu bogué lors de l'utilisation de seccomp.

Ajoutez cette ligne à la fin de /etc/vsftpd.conf

seccomp_sandbox = NO

et redémarrez le serveur:

redémarrage de vsftpd du service Sudo

2
Faizan Akram Dar