J'ai téléchargé vsftpd, installé et configuré sur la base de ce lien Comment configurer un serveur FTP dans Ubuntu Linux Sur mon Ubuntu 12.04. Mais la question est de savoir comment tester cela?
Je veux apprendre à utiliser vsftpd et je suis à la recherche d'un scénario graphique simple étape par étape pour l'apprendre. Comme un scénario qui inclut le client et le serveur en utilisant la boîte virtuelle ?
Comment télécharger un fichier depuis Ubuntu_2 dans Ubuntu_1. Quels sont les deux OS virtuels dans la boîte virtuelle
Vérifier l'état du service
Sudo service vsftpd status
Vérifiez ses processus en cours
ps ax | grep vsftpd
(Commande pour: lister tous les processus puis filtrer la sortie de la ligne vsftpd)
ou vous pouvez utiliser une boucle pour surveiller ses processus:
while sleep 1 ; do clear ; ps ax | grep vsftpd ; done
(Commande pour: attendre 1 seconde, effacer l'écran Shell, répertorier tous les processus, puis filtrer la sortie pour la ligne vsftpd, boucler à nouveau car le sommeil revient toujours avec succès)
Vérifier l'état du port lié au processus vsftpd
netstat -lnp | grep vsftpd
(Commande pour: répertorier tous les ports d'écoute avec le numéro de port et l'ID de processus (PID) le possédant, puis filtrer la sortie pour la ligne vsftpd)
Surveiller le journal du serveur (tail
avec -f
pour suivre les mises à jour des journaux et surveiller vsftpd)
$ tail -f /var/log/vsftpd.log
Fri Apr 25 18:43:28 2014 [pid 2026] CONNECT: Client "127.0.0.1"
Fri Apr 25 18:45:01 2014 [pid 2025] [sneetsher] OK LOGIN: Client "127.0.0.1"
(note: je les lance depuis le serveur juste pour faire des exemples, je préfère qu'un autre hôte vérifie les paramètres du pare-feu ...)
ftp
commande avec -v
option détaillée pour afficher toutes les réponses du serveur distant)
$ ftp -v localhost
Connected to localhost.
220 (vsFTPd 3.0.2)
Name (localhost:sneetsher):
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
FileZilla. Il a un journal très détaillé, mais il envoie quelques commandes en fonction de paramètres qui ne correspondent pas toujours à ce que vous voulez.
Status: Resolving address of localhost
Status: Connecting to 127.0.0.1:21...
Status: Connection established, waiting for welcome message...
Response: 220 (vsFTPd 3.0.2)
Command: USER sneetsher
Response: 331 Please specify the password.
Command: PASS ********
Response: 230 Login successful.
Command: SYST
Response: 215 UNIX Type: L8
Command: FEAT
Response: 211-Features:
Response: EPRT
Response: EPSV
Response: MDTM
Response: PASV
Response: REST STREAM
Response: SIZE
Response: TVFS
Response: UTF8
Response: 211 End
Command: OPTS UTF8 ON
Response: 200 Always in UTF8 mode.
Status: Connected
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/home/sneetsher"
Command: TYPE I
Response: 200 Switching to Binary mode.
Command: PASV
Response: 227 Entering Passive Mode (127,0,0,1,159,231).
Command: LIST
Response: 150 Here comes the directory listing.
Response: 226 Directory send OK.
Status: Calculating timezone offset of server...
Command: MDTM 0000_12.04~
Response: 213 20140208184211
Status: Timezone offsets: Server: 0 seconds. Local: 0 seconds. Difference: 0 seconds.
Status: Directory listing successful
...
Status: Sending keep-alive command
Command: TYPE I
Response: 200 Switching to Binary mode.
Côté serveur: après avoir modifié vsftpd.conf
, redémarrage du service (pas besoin de redémarrer l'invité VBox)
Sudo service vsftpd restart
Côté client: il est possible d'écrire des scripts client FTP (tests de routine) en utilisant yafc
. Exemple pour télécharger un dossier:
#!/bin/bash
yafc <<**
open ftp://username:password@hostname
put -f -r folder
close
**
exit 0
ou en utilisant ftp
:
#!/bin/sh
Host='ftp.users.qwest.net'
USER='yourid'
PASSWD='yourpw'
FILE='file.txt'
ftp -n $Host <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
put $FILE
quit
END_SCRIPT
exit 0
Le client doit être dans le même NAT réseau, réseau interne avec serveur.
Ou si le serveur dispose d'un adaptateur ponté, le client peut être défini avec NAT, NAT Network, Bridged Adapter.
Références:
Vous pouvez tester le serveur VSFTPD par les 3 méthodes suivantes:
Sur la machine Ubuntu (sur laquelle vous avez installé le serveur VSFTPD), ouvrez le terminal (Ctrl + Alt + T) et tapez 'ftp localhost'. Entrez le nom et le mot de passe lorsque vous y êtes invité. En cas de succès, vous entrerez dans l'invite ftp>.
Référez-vous: https://help.ubuntu.com/community/vsftpd
Test de l'état de VSFTPD -> Exécutez "netstat -a | grep ftp" sur votre serveur. Si VSFTPD n'était pas en cours d'exécution, il n'y aurait aucune sortie du tout.
Vérifiez ce lien: http://www.informit.com/articles/article.aspx?p=378136&seqNum=6
Depuis une autre machine Ubuntu (considérez-le comme un client FTP), envoyez ou recevez des fichiers vers/depuis votre serveur FTP (c'est-à-dire la machine sur laquelle VSFTPD est installé).
Pour cela, vous devrez vous connecter au serveur FTP depuis une autre machine ubuntu.
Consultez la liste des commandes FTP sur linux dans ce lien: http://linux.about.com/od/commands/a/blcmdl1_ftpx.htm
Sur le serveur ubuntu, ouvrez le terminal et tapez:
Sudo service vsftpd status
si la sortie est similaire (sauf pour le processus pid):
vsftpd start/running, process 6582
alors le serveur fonctionne.
Depuis un autre ordinateur pour vérifier si le serveur est actif sur le port par défaut (21):
telnet ip_server_ftp 21
la sortie sera renvoyée si la connexion a été
Il y a aussi une simple giude dans ce lien http://blog.pluralsight.com/how-to-set-up-safe-ftp-in-linux
également sur virtualBox si depuis votre geust, vous ne pouvez pas vous connecter ftp à l'hôte, vous devez suivre ici: Les autorisations FTP lisent mais pas écrivent
également sur le fichier .conf https://serverfault.com/questions/362619/why-is-the-chroot-local-user-of-vsftpd-insecure
https://serverfault.com/questions/358211/can-i-configure-vsftpd-to-listen-only-to-localhost
https://serverfault.com/questions/34678/how-to-configure-vsftpd-to-allow-root-logins
http://xmodulo.com/2014/06/secure-ftp-service-vsftpd-linux.html