Configurer FTP sur Amazon Cloud Server

j'essaie de configurer FTP sur Amazon Cloud Server, mais sans succès. Je cherche sur le net et il n'y a pas d'étapes concrètes pour le faire.

j'ai trouvé ces commandes à exécuter:

$ yum install vsftpd
$ ec2-authorize default -p 20-21
$ ec2-authorize default -p 1024-1048
$ vi /etc/vsftpd/vsftpd.conf
#<em>---Add following lines at the end of file---</em>
    pasv_enable=YES
    pasv_min_port=1024
    pasv_max_port=1048
    pasv_address=<Public IP of your instance>
$ /etc/init.d/vsftpd restart

mais je ne sais pas où les écrire.

239
demandé sur FrankerZ 2011-08-13 23:51:25

13 réponses

Jaminto a fait un excellent travail de répondre à la question, mais je suis récemment passé par le processus moi-même et a voulu développer la réponse de Jaminto.

je suppose que vous avez déjà créé une instance EC2 et lui avez associé une adresse IP élastique.





Étape #1: Installer vsftpd

SSH à votre serveur EC2. Type:

> sudo yum install vsftpd

cela devrait installer vsftpd.



étape n ° 2: Ouvrez les ports FTP sur votre instance EC2

ensuite, vous devrez ouvrir les ports FTP sur votre serveur EC2. Connectez-vous à la Console de gestion AWS EC2 et sélectionnez les groupes de sécurité dans l'arbre de navigation à gauche. Sélectionnez le groupe de sécurité assigné à votre instance EC2. Puis sélectionnez l'onglet arrivée, puis cliquez sur Edit:

enter image description here

ajouter deux règles TCP personnalisées avec les plages de ports 20-21 et 1024-1048. Pour la Source, vous pouvez sélectionner "Anywhere". Si vous décidez de définir Source à votre propre adresse IP, sachez que votre adresse IP peut changer si elle est assignée via DHCP.

enter image description here





Étape #3: Faire des mises à jour à la vsftpd.fichier conf

éditez votre fichier conf vsftpd en tapant:

> sudo vi /etc/vsftpd/vsftpd.conf

désactiver FTP anonyme en changeant cette ligne:

anonymous_enable=YES

à

anonymous_enable=NO

ajouter ensuite les lignes suivantes au bas du vsftpd.fichier conf:

pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
pasv_address=<Public IP of your instance> 

votre vsftpd.le fichier conf doit ressembler à ce qui suit-sauf make assurez-vous de remplacer le pasv_address par votre adresse IP faisant face au public:

enter image description here

Pour enregistrer les modifications, appuyez sur echap, puis tapez :wq , puis appuyez sur entrée.





Étape #4: Redémarrer vsftpd

redémarrer vsftpd en tapant:

> sudo /etc/init.d/vsftpd restart

vous devriez voir un message que on dirait:

enter image description here



Si cela ne fonctionne pas, essayez:

> sudo /sbin/service vsftpd restart





Étape #5: Créer un utilisateur FTP

si vous jetez un oeil à /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

c'est en gros dire," Ne permettez pas ces utilisateurs accès FTP."vsftpd permettra L'accès FTP à tout utilisateur ne figurant pas sur cette liste.

, afin de créer un nouveau compte FTP, vous pouvez avoir besoin de créer un nouvel utilisateur sur votre serveur. (Ou, si vous disposez déjà d'un compte d'utilisateur qui n'est pas listé dans /etc/vsftpd/user_list, vous pouvez passer à l'étape suivante.)

créer 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 il ressemblera:

enter image description here





É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 on peut le réparer assez facilement.

Éditez à nouveau votre fichier de conf vsftpd en tapant:

> sudo vi /etc/vsftpd/vsftpd.conf

dé-commentez la ligne suivante:

chroot_local_user=YES

il devrait ressembler à ceci une fois que vous avez fait:

enter image description here

redémarrez le serveur vsftpd comme suit:

> sudo /etc/init.d/vsftpd restart

tout est fait!



Annexe A: Survivre à un redémarrage de l'ordinateur

vsftpd ne démarre pas automatiquement lorsque le serveur démarre. Si vous êtes comme moi, cela signifie qu'après avoir redémarré votre instance EC2, vous sentirez un moment de terreur quand FTP semble être cassé - mais en réalité, il ne fonctionne pas!. Voici un moyen pratique de corriger cela:

> sudo chkconfig --level 345 vsftpd on

alternativement, si vous utilisez redhat, une autre façon de gérer vos services est en utilisant cette interface utilisateur graphique astucieuse pour contrôler quels services devraient automatiquement commencer:

>  sudo ntsysv

enter image description here

Maintenant vsftpd démarrera automatiquement lorsque votre serveur démarre.



Annexe B: la Modification d'un utilisateur FTP home directory

* NOTE: Iman Sedighi a publié une solution plus élégante pour restreindre l'accès des utilisateurs à un répertoire spécifique. S'il vous plaît se référer à son excellente solution publié comme une réponse *

vous pourriez vouloir 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 home par défaut de l'utilisateur:

> sudo usermod -d /var/www/ username

dans cet exemple spécifique, il est typique de donner les permissions utilisateur au groupe 'www', qui est souvent associé au dossier/var / www:

> sudo usermod -a -G www username
536
répondu clone45 2016-04-26 16:40:07

pour activer le ftp passif sur un serveur EC2, vous devez configurer les ports que votre serveur ftp devrait utiliser pour les connexions entrantes, puis ouvrir une liste de ports disponibles pour les connexions de données client ftp.

Je ne suis pas très familier de linux, mais les commandes que vous avez postées sont les étapes pour installer le serveur ftp, configurer les règles du pare-feu ec2 (via L'API AWS), puis configurer le serveur ftp pour utiliser les ports que vous avez autorisés sur le pare-feu ec2.

cette étape installe le client ftp (VSFTP)

> yum install vsftpd

ces étapes configurer le client ftp

> vi /etc/vsftpd/vsftpd.conf
--    Add following lines at the end of file --
     pasv_enable=YES
     pasv_min_port=1024
     pasv_max_port=1048
     pasv_address=<Public IP of your instance> 
> /etc/init.d/vsftpd restart

mais les deux autres étapes sont plus faciles à faire via la console amazon sous les groupes de sécurité EC2. Là, vous devez configurer le groupe de sécurité qui est assigné à votre serveur pour autoriser les connexions sur les ports 20,21, et 1024-1048

25
répondu jaminto 2011-08-13 21:08:40

Merci @clone45 pour la bonne solution. Mais je n'avais qu'un problème important avec L'Annexe b de sa solution. Immédiatement après avoir changé le répertoire d'accueil en var / www / html, Je n'ai pas pu me connecter au serveur par ssh et sftp car il affiche toujours les erreurs suivantes

permission denied (public key)

ou dans FileZilla j'ai reçu ce message d'erreur:

No supported authentication methods available (server: public key)

mais je pouvais accéder au serveur par une connexion FTP normale.

si vous avez rencontré la même erreur, annulez simplement l'annexe b de @clone45 solution en définissant le répertoire personnel par défaut pour l'utilisateur:

sudo usermod -d /home/username/ username

mais lorsque vous définissez le répertoire de l'utilisateur par défaut, l'Utilisateur a accès à de nombreux autres dossiers à l'extérieur de /var/www/http. Ainsi, pour sécuriser votre serveur, suivez les étapes suivantes:

1-Marque groupe sftponly Faire un groupe pour tous les utilisateurs que vous souhaitez limiter leur accès uniquement à l'accès ftp et sftp à var/www / html. pour faire le groupe:

sudo groupadd sftponly

2 - Prison chroot Pour restreindre l'accès de ce groupe au serveur via sftp, vous devez emprisonner le chroot pour ne pas laisser les utilisateurs du groupe accéder à n'importe quel dossier sauf le dossier html à l'intérieur de son répertoire d'origine. pour ce faire, ouvrez / etc/ssh / sshd.config dans la vim avec sudo. À la fin du fichier s'il vous plaît commenter cette ligne:

Subsystem sftp /usr/libexec/openssh/sftp-server

et puis ajouter la ligne suivante:

Subsystem sftp internal-sftp

nous avons donc remplacé le sous-système par interne-sftp. Ajouter ensuite les lignes suivantes:

 Match Group sftponly
        ChrootDirectory /var/www
        ForceCommand internal-sftp
        AllowTcpForwarding no

après avoir ajouté cette ligne, j'ai enregistré mes modifications, puis redémarré le service ssh par:

sudo service sshd restart

3-Ajouter l'utilisateur au groupe sftponly Tout utilisateur que vous voulez restreindre leur accès doit être membre du groupe sftponly. C'est pourquoi nous la joignons à sftponly par: sudo usermod -G sftponly nom d'utilisateur

4-restreindre l'accès des utilisateurs à just var/www / html Pour restreindre l'accès de l'utilisateur au seul dossier var/www/html, nous devons créer un répertoire dans le répertoire d'accueil (avec le nom de 'html') de cet utilisateur et ensuite monter / var / www À / home/username / html comme suit:

sudo mkdir /home/username/html
sudo mount --bind /var/www /home/username/html

5 - configurer l'accès en écriture Si l'Utilisateur a besoin d'un accès en écriture à /var / www / html, alors vous devez l'emprisonner à /var / www qui doit avoir root:root ownership et permissions de 755. Vous devez alors donner à/var/www / html la propriété de root: sftponly et les permissions de 775 en ajoutant les lignes suivantes:

sudo chmod 755 /var/www
sudo chown root:root /var/www
sudo chmod 775 /var/www/html
sudo chown root:www /var/www/html

6 - Bloc accès au shell Si vous voulez restreindre l'accès à ne pas accéder à shell pour le rendre plus sûr, alors changez simplement le shell par défaut en bin / false comme suit:

sudo usermod -s /bin/false username
16
répondu Iman Sedighi 2016-04-27 01:59:03

Grand Article... a travaillé comme une brise sur Amazon Linux AMI.

deux autres commandes utiles:

pour changer le dossier de téléchargement FTP par défaut

Étape 1:

edit /etc/vsftpd/vsftpd.conf

Étape 2: Créer une nouvelle entrée au bas de la page:

local_root=/var/www/html

pour appliquer lire, écrire, supprimer la permission aux fichiers sous le dossier afin que vous puissiez gérer utilisant un dispositif FTP

find /var/www/html -type d -exec chmod 777 {} \;
11
répondu Ravi Shanker 2014-02-14 07:18:40

dans le cas où vous avez UFW activé, n'oubliez pas d'ajouter ftp:

> sudo ufw allow ftp

il m'a fallu 2 jours pour réaliser que j'ai permis ufw.

6
répondu chbong 2014-04-17 05:38:20

il ne sera pas ok jusqu'à ce que vous ajoutez votre utilisateur au groupe www par les commandes suivantes:

sudo usermod -a -G www <USER>

cela résout le problème de permission.

définit le chemin par défaut en ajoutant ceci:

local_root=/var/www/html
6
répondu user1802434 2014-08-05 03:49:51

n'oubliez pas de mettre à jour votre pare-feu iptables si vous en avez un pour permettre les gammes 20-21 et 1024-1048.

le Faire à partir de /etc/sysconfig/iptables

ajouter des lignes comme ceci:

- A INPUT-m state --state NEW-m tcp-p tcp --dport 20: 21-j ACCEPT

- A INPUT-m state --state NEW-m tcp-p tcp --dport 1024: 1048-j ACCEPT

et redémarrez iptables avec la commande:

sudo service iptables restart

4
répondu Kevin Meek 2013-12-10 17:20:36

j'ai simplifié clone45 pas:

ouvrir les ports comme il l'a mentionné

sudo su
sudo yum install vsftpd
echo -n "Public IP of your instance: " && read publicip
echo -e "anonymous_enable=NO\npasv_enable=YES\npasv_min_port=1024\npasv_max_port=1048\npasv_address=$publicip\nchroot_local_user=YES" >> /etc/vsftpd/vsftpd.conf
sudo /etc/init.d/vsftpd restart
3
répondu Willem Bressers 2016-03-09 15:38:20

c'est un bon article. Notez que vous devrez probablement ajouter l'utilisateur que vous avez créé au groupe D'utilisateurs "FTP":

> gpasswd -a <usr> ftp

2
répondu MCP 2014-01-03 02:00:54

j'ai suivi la réponse de clone45 jusqu'au bout. Un super article! Depuis que j'avais besoin de L'accès FTP pour installer des plug-ins sur l'un de mes sites wordpress, j'ai changé le répertoire home En /var/www/mysitename. Puis j'ai continué à ajouter mon utilisateur ftp au Groupe apache(ou www) comme ceci:

sudo usermod -a -G apache myftpuser

après cela, j'ai encore vu cette erreur sur la page D'installation du plugin de WP:"impossible de localiser WordPress Content directory (wp-content)". Recherche et a trouvé cette solution sur a wp.org séance de questions et réponses: https://wordpress.org/support/topic/unable-to-locate-wordpress-content-directory-wp-content et a ajouté ce qui suit à la fin de wp-config.php:

if(is_admin()) {
    add_filter('filesystem_method', create_function('$a', 'return "direct";' ));
    define( 'FS_CHMOD_DIR', 0751 );
}

après cela, mon plugin WP a été installé avec succès.

2
répondu CodeBrew 2015-06-28 14:28:01

peut-être vaut la peine de mentionner en plus de clone45 'S réponse:

Fixation des Autorisations d'Écriture pour Chrooté Utilisateurs FTP dans vsftpd

la version vsftpd fournie avec Ubuntu 12.04 Precise n'est pas permettre aux utilisateurs locaux chrootés d'écrire par défaut. Par défaut, vous sera avoir ceci dans / etc / vsftpd.conf :

chroot_local_user=YES
write_enable=YES

afin de permettre aux les utilisateurs d'écrire, vous devez ajouter le paramètre suivant:

allow_writeable_chroot=YES

Note: Les problèmes avec les permissions d'écriture peuvent apparaître comme suit FileZilla erreurs:

Error: GnuTLS error -15: An unexpected TLS packet was received.
Error: Could not connect to server

References:

corriger les Permissions D'écriture pour les utilisateurs FTP chrootés dans vsftpd

vsftpd arrêté après la mise à jour

0
répondu Hartmut 2017-05-23 11:33:25

FileZila est un bon outil FTP pour se configurer avec Amazon Cloud.

  1. télécharger FileZila client de https://filezilla-project.org /
  2. Cliquez sur Fichier -> Gestionnaire de Site - >
  3. Nouveau Site
  4. fournir le nom D'hôte adresse IP de votre emplacement de nuage d'amazon (Port s'il y a lieu)
  5. protocole-SFTP (peut changer en fonction de vos besoins)
  6. Type de Login-Normal (donc le système ne demandera pas de mot de passe à chaque fois)
  7. fournir le nom d'utilisateur et le mot de passe.
  8. Connect.

vous devez faire cette étape seulement une fois, plus tard, il va télécharger le contenu à la même adresse IP et le même site.

0
répondu Pratima 2017-05-18 18:07:09

dans le cas où vous obtenez 530 mot de passe incorrect

1 autre pas nécessaire

dans le fichier /etc/shells

ajouter la ligne suivante

/ bin / false

0
répondu Varun Bhatia 2018-08-30 09:29:26