Jaminto a fait un excellent travail pour répondre à la question, mais j'ai récemment suivi le processus moi-même et je voulais développer la réponse de Jaminto.
Je suppose que vous avez déjà créé une instance EC2 et que vous lui avez associé une adresse IP élastique.
Étape # 1: Installez vsftpd
SSH sur votre serveur EC2. Type:
> sudo yum install vsftpd
Cela devrait installer vsftpd.
Étape # 2: Ouvrez les ports FTP sur votre instance EC2
Ensuite, vous devrez ouvrir les ports FTP sur votre serveur EC2. Connectez-vous à AWS EC2 Management Console et sélectionnez Groupes de sécurité dans l'arborescence de navigation à gauche. Sélectionnez le groupe de sécurité affecté à votre instance EC2. Sélectionnez ensuite l'onglet Entrant, puis cliquez sur Modifier:
Ajoutez deux règles TCP personnalisées avec les plages de ports 20-21 et 1024-1048. Pour Source, vous pouvez sélectionner «N'importe où». Si vous décidez de définir Source sur votre propre adresse IP, sachez que votre adresse IP peut changer si elle est attribuée via DHCP.
Étape # 3: effectuez des mises à jour du fichier vsftpd.conf
Modifiez votre fichier de configuration vsftpd en tapant:
> sudo vi /etc/vsftpd/vsftpd.conf
Désactivez le FTP anonyme en modifiant cette ligne:
anonymous_enable=YES
à
anonymous_enable=NO
Ajoutez ensuite les lignes suivantes au bas du fichier vsftpd.conf:
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
pasv_address=<Public IP of your instance>
Votre fichier vsftpd.conf devrait ressembler à ceci - sauf assurez-vous de remplacer pasv_address par votre adresse IP publique:
Pour enregistrer les modifications, appuyez sur échap, puis tapez :wq
, puis appuyez sur entrée.
Étape # 4: Redémarrez vsftpd
Redémarrez vsftpd en tapant:
> sudo /etc/init.d/vsftpd restart
Vous devriez voir un message qui ressemble à ceci:
Si cela ne fonctionne pas, essayez:
> sudo /sbin/service vsftpd restart
Étape # 5: créer un utilisateur FTP
Si vous jetez un œil à / etc / vsftpd / user_list, vous verrez ce qui suit:
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
Cela signifie essentiellement: «Ne pas autoriser l'accès FTP à ces utilisateurs». vsftpd autorisera l'accès FTP à tout utilisateur ne figurant pas sur cette liste.
Ainsi, afin de créer un nouveau compte FTP, vous devrez peut-être créer un nouvel utilisateur sur votre serveur. (Ou, si vous avez déjà un compte d'utilisateur qui n'est pas répertorié dans / etc / vsftpd / user_list, vous pouvez passer à l'étape suivante.)
La création d'un nouvel utilisateur sur une instance EC2 est assez simple. Par exemple, pour créer l'utilisateur «bret», tapez:
> sudo adduser bret
> sudo passwd bret
Voici à quoi cela ressemblera:
Étape # 6: restreindre les utilisateurs à leurs répertoires personnels
À ce stade, vos utilisateurs FTP ne sont pas limités à leurs répertoires personnels. Ce n'est pas très sûr, mais nous pouvons le réparer assez facilement.
Modifiez à nouveau votre fichier de configuration vsftpd en tapant:
> sudo vi /etc/vsftpd/vsftpd.conf
Décommentez la ligne:
chroot_local_user=YES
Cela devrait ressembler à ceci une fois que vous avez terminé:
Redémarrez le serveur vsftpd comme suit:
> sudo /etc/init.d/vsftpd restart
Terminé!
Annexe A: Survivre à un redémarrage
vsftpd ne démarre pas automatiquement au démarrage de votre serveur. Si vous êtes comme moi, cela signifie qu'après le redémarrage de votre instance EC2, vous ressentirez un moment de terreur lorsque FTP semble être cassé - mais en réalité, il ne fonctionne tout simplement pas!. Voici un moyen pratique de résoudre ce problème:
> sudo chkconfig --level 345 vsftpd on
Alternativement, si vous utilisez redhat, une autre façon de gérer vos services est d'utiliser cette interface utilisateur graphique astucieuse pour contrôler les services qui devraient démarrer automatiquement:
> sudo ntsysv
Maintenant, vsftpd démarrera automatiquement au démarrage de votre serveur.
Annexe B: Modification du répertoire de base FTP d'un utilisateur
* REMARQUE: Iman Sedighi a publié une solution plus élégante pour restreindre l'accès des utilisateurs à un répertoire spécifique. Veuillez vous référer à son excellente solution affichée comme réponse *
Vous souhaiterez peut-être créer un utilisateur et restreindre son accès FTP à un dossier spécifique, tel que / var / www. Pour ce faire, vous devrez modifier le répertoire personnel par défaut de l'utilisateur:
> sudo usermod -d /var/www/ username
Dans cet exemple spécifique, il est typique de donner à l'utilisateur des autorisations sur le groupe «www», qui est souvent associé au dossier / var / www:
> sudo usermod -a -G www username