J'essaie de configurer FTP sur Amazon Cloud Server, mais sans chance. 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.
linux
amazon-web-services
amazon-s3
amazon-ec2
ftp
SharkTheDark
la source
la source
Réponses:
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:
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:
Désactivez le FTP anonyme en modifiant cette ligne:
à
Ajoutez ensuite les lignes suivantes au bas du fichier vsftpd.conf:
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:
Vous devriez voir un message qui ressemble à ceci:
Si cela ne fonctionne pas, essayez:
Étape # 5: créer un utilisateur FTP
Si vous jetez un œil à / etc / vsftpd / user_list, vous verrez ce qui suit:
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:
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:
Décommentez la ligne:
Cela devrait ressembler à ceci une fois que vous avez terminé:
Redémarrez le serveur vsftpd comme suit:
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:
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:
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:
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:
la source
step 3
avoir ajouté des lignes dans un fichier, comment puis-je l'enregistrer?Pour activer le ftp passif sur un serveur EC2, vous devez configurer les ports que votre serveur ftp doit utiliser pour les connexions entrantes, puis ouvrir une liste des ports disponibles pour les connexions de données client ftp.
Je ne connais pas très bien Linux, mais les commandes que vous avez publié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 autorisés sur le pare-feu ec2 .
Cette étape installe donc le client ftp (VSFTP)
> yum install vsftpd
Ces étapes configurent le client ftp
mais les deux autres étapes sont plus faciles à réaliser via la console amazon sous les groupes de sécurité EC2. Là, vous devez configurer le groupe de sécurité affecté à votre serveur pour autoriser les connexions sur les ports 20,21 et 1024-1048
la source
Merci @ clone45 pour la belle solution. Mais je n'avais qu'un seul problème important avec l'annexe B de sa solution. Immédiatement après avoir changé le répertoire personnel en var / www / html, je n'ai pas pu me connecter au serveur via ssh et sftp car il affiche toujours les erreurs suivantes
ou dans FileZilla j'ai reçu cette erreur:
Mais je pouvais accéder au serveur via une connexion FTP normale.
Si vous avez rencontré la même erreur, annulez simplement l'annexe B de la solution @ clone45 en définissant le répertoire de base par défaut de l'utilisateur:
Mais lorsque vous définissez le répertoire de base par défaut de l'utilisateur, l'utilisateur a accès à de nombreux autres dossiers en dehors de / var / www / http. Donc, pour sécuriser votre serveur, suivez ces étapes:
1- Créer un groupe sftponly Créez un groupe pour tous les utilisateurs dont vous souhaitez restreindre l'accès à seulement ftp et sftp à var / www / html. pour faire le groupe:
2- Emprisonnement du 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 à l'exception du dossier html dans son répertoire personnel. pour ce faire, ouvrez /etc/ssh/sshd.config dans le vim avec sudo. À la fin du fichier, veuillez commenter cette ligne:
Et puis ajoutez cette ligne ci-dessous:
Nous avons donc remplacé le sous-système par internal-sftp. Ajoutez ensuite les lignes suivantes en dessous:
Après avoir ajouté cette ligne, j'ai enregistré mes modifications, puis redémarré le service ssh en:
3- Ajouter l'utilisateur au groupe sftponly Tout utilisateur dont vous souhaitez restreindre l'accès doit être membre du groupe sftponly. C'est pourquoi nous le rejoignons à sftponly par: sudo usermod -G sftponly username
4- Restreindre l'accès utilisateur à seulement var / www / html Pour restreindre l'accès utilisateur à seulement le dossier var / www / html, nous devons créer un répertoire dans le répertoire personnel (avec le nom de 'html') de cet utilisateur, puis monter / var / www vers / home / nom d'utilisateur / html comme suit:
5- Définir l'accès en écriture Si l'utilisateur a besoin d'un accès en écriture à / var / www / html, vous devez emprisonner l'utilisateur dans / var / www qui doit avoir root: propriété root et les autorisations de 755. Vous devez alors donner / var / www / html propriété de root: sftponly et permissions de 775 en ajoutant les lignes suivantes:
6- Bloquer l'accès au shell Si vous souhaitez restreindre l'accès à ne pas accéder au shell pour le rendre plus sécurisé, changez simplement le shell par défaut en bin / false comme suit:
la source
sudo mount --bind /var/www /home/username/html
me dit qu'il n'y a pas de dossier www. Je suppose que cela se fait à partir de la racine (où se trouve le dossier / home)?sudo chown root:www /var/www/html
états chown: groupe invalide: 'root: www'sudo usermod -s /sbin/nologin username
cause des restrictions par défaut du shell du module pam de vsftpd (et cela semble mieux fonctionner dans mon cas). Et la partie 4mount
doit être effectuée à chaque redémarrage, c'est donc une bonne idée de la placer dans rc.local.Great Article ... a fonctionné comme une brise sur Amazon Linux AMI.
Deux commandes plus utiles:
Pour modifier le dossier de téléchargement FTP par défaut
Étape 1:
Étape 2: créez une nouvelle entrée en bas de la page:
Pour appliquer l'autorisation de lecture, d'écriture et de suppression aux fichiers du dossier afin de pouvoir gérer à l'aide d'un périphérique FTP
la source
Si vous avez activé ufw, n'oubliez pas d'ajouter ftp:
Il m'a fallu 2 jours pour réaliser que j'avais activé ufw.
la source
Ce ne sera pas correct tant que vous n'ajoutez pas votre utilisateur au groupe www par les commandes suivantes:
Cela résout le problème d'autorisation.
Définissez le chemin par défaut en ajoutant ceci:
la source
N'oubliez pas de mettre à jour votre pare-feu iptables si vous en avez un pour autoriser les plages 20-21 et 1024-1048.
Faites cela depuis / etc / sysconfig / iptables
Ajout de lignes comme celle-ci:
Et redémarrez iptables avec la commande:
la source
J'ai simplifié les étapes de clone45:
Ouvrez les ports comme il l'a mentionné
la source
J'ai suivi la réponse de clone45 jusqu'à la fin. Un super article! Comme 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 personnel en / var / www / mysitename. Ensuite, j'ai continué à ajouter mon utilisateur ftp au groupe apache (ou www) comme ceci:
Après cela, j'ai toujours vu cette erreur sur la page d'installation du plugin WP: "Impossible de localiser le répertoire de contenu WordPress (wp-content)". Vous avez recherché et trouvé cette solution sur une session de questions / réponses de wp.org: https://wordpress.org/support/topic/unable-to-locate-wordpress-content-directory-wp-content et ajouté ce qui suit à la fin de wp- config.php:
Après cela, mon plugin WP a été installé avec succès.
la source
peut-être la peine de mentionner en plus de la réponse de clone45 :
Remarque: Les problèmes avec les autorisations d'écriture peuvent apparaître comme les erreurs FileZilla suivantes :
Références:
La correction des autorisations d'écriture pour les utilisateurs FTP chrootés dans vsftpd
VSFTPd a cessé de fonctionner après la mise à jour
la source
Si vous obtenez un mot de passe 530 incorrect
1 étape supplémentaire nécessaire
dans le fichier / etc / shells
Ajoutez la ligne suivante
/ bin / false
la source
FileZila est un bon outil FTP pour configurer avec Amazon Cloud.
Vous devez effectuer ces étapes une seule fois, plus tard, le contenu sera téléchargé vers la même adresse IP et le même site.
la source