Serveur FTP Ubuntu de base


33

Je voudrais installer un serveur FTP de base sur mon installation Ubuntu Server. Je joue avec VSFTPD, mais j'ai des problèmes pour que le serveur me permette de créer des répertoires et de copier des fichiers. J'ai configuré le système pour autoriser les utilisateurs locaux, mais il semble que cela ne signifie pas que je puisse accéder à la création de répertoires. Cela peut être un cas où je dois mieux connaître la configuration du serveur Ubuntu afin de configurer correctement ce serveur FTP. L'objectif final est de pouvoir déplacer des fichiers de mon dossier dev local dans mon dossier www pour le déploiement. Les répertoires doivent également pouvoir être déplacés. Toute aide serait grandement appréciée.


Vous avez mentionné le déplacement de fichiers et de dossiers du local dev vers le dossier www - le faites-vous tous sur le même ordinateur ou sur des ordinateurs différents?
Marco Ceppi

Aussi êtes-vous complet vendu avec VSFTPD? Ou seriez-vous intéressé par d'autres types de logiciels FTP comme pureftp?
Marco Ceppi

Le développement local est une machine à part entière. Je suis habitué à transférer des fichiers sur des serveurs Web via FTP, il existe peut-être un meilleur moyen.
JPrescottSanders

Je ne suis pas vendu sur VSFTPD, c’est le premier que j’ai trouvé en cherchant sur Google. Si vous avez une solution plus simple, je suis tout ouïe.
JPrescottSanders

Réponses:


42

Je vais recommander PureFTPD car c'est à mon avis le plus simple et le plus facile à utiliser. Vous devrez d'abord l'installer: sudo apt-get install pure-ftpdune fois installé, il se lancera tout seul. Par défaut, il utilise les authentifications PAM, ce qui signifie qu'il utilise les comptes qui existent déjà sur le système pour son authentification. Tout ce que vous devez faire est de créer un compte utilisateur avec le répertoire de base constituant votre chemin www et de définir le mot de passe de ce compte. Vous devriez alors pouvoir vous connecter avec cette combinaison utilisateur / passe pour télécharger des fichiers.

Quelque chose comme ça:

sudo adduser ftpman --home /var/www/ --ingroup www-data

Ce qui créera l' ftpmanutilisateur et le placera dans le groupe www-data utilisé par Apache et vous guidera à travers le reste du script d'installation. Une fois que cela est défini, assurez-vous que chmodle dossier WWW contient des erreurs qui existent déjà pour la combinaison utilisateur / groupe que vous avez créée.

Enfin, si vous souhaitez verrouiller l'accès SSH pour ce compte, exécutez: sudo chsh -s /bin/false ftpmance qui modifiera le shell de l'utilisateur en false. (Remplacez ftpman par votre utilisateur ftp)


5
PureFTP est le plus facile à configurer en ce qui me concerne.
Nathan Osman

1
Vous avez l'habitude de donner une explication complète toujours comme un professeur. Impressionnant!!!
user3215

1
J'ai essayé cela mais je ne peux pas me connecter avec l'utilisateur nouvellement créé. Les utilisateurs existants fonctionnent bien
wim

1
Tout cela fonctionne bien, sauf que lorsque je lance l'application, chshcela semble également empêcher les utilisateurs de se connecter via FTP. Revenir à lui /bin/bashpermet de fonctionner à nouveau.
DanH

1
Merci et je peux confirmer que j'ai passé une journée complète avec vsftpd et 5 minutes avec pureftpd en temps d'installation. Pour une configuration simple et sécurisée, utilisez pureftpd. Je suis confus, pourquoi intégrer les rabatteurs vsftpd!
RyBolt

10

À mon avis, SFTP est une meilleure solution. Hé, il y a le mot "sécurisé" dans le nom, ça doit être mieux :)

SFTP utilise ssh pour effectuer les transferts de fichiers (par opposition à FTPS, qui est en fait FTP + TLS). Cela signifie que si vous pouvez utiliser ssh sur la machine cible, vous pouvez presque toujours utiliser SFTP, car elle utilise les mêmes mécanismes d'authentification, évitant ainsi l'installation et la configuration de différents démons de serveur (c'est-à-dire sans pureftpd ni vsftpd). Tant que vos autorisations sont correctement définies pour /var/www- ce qui est probablement une question de sudo chmod g+w /var/www; sudo usermod -g $USER -G www-data $USER- vous devriez pouvoir utiliser immédiatement SFTP.

De nos jours, la plupart des logiciels clients s’adonnent très bien à SFTP, et vous pouvez également utiliser scpun shell sur le serveur de développement pour copier des éléments ( scp -Rpermet de copier des dossiers entiers, et est très pratique). Vous pouvez même aller plus loin et automatiser les connexions avec des clés publiques, ce qui signifie que vous ne devez plus taper de mots de passe :)


3
indice conseil ... si vous avez des clients Windows, ils peuvent utiliser WinSCP winscp.net/eng/index.php pour accéder à un serveur sftp.
LassePoulsen

Selon votre commentaire, l'OP devrait bien entendu utiliser vsftpd, car vs signifie très sécurisé . :-)
qbi

PureFTPD utilise la même authentification que SFTP - elle est en réalité plus sécurisée à mon avis, car si les informations de votre compte sont divulguées, aucun utilisateur n’a un accès SSH à votre machine. Au pire, ils ont un accès au fichier.
Marco Ceppi

Si votre application ne prend en charge que le protocole FTP et que vous la crénelez sur SSH, quelle est la différence? :)
endolith

5

Je recommande fortement d'utiliser vsftpd. C'est l'un des démons FTP les plus sécurisés sous Linux. Beaucoup d'autres avaient des faiblesses dans le passé et il semble que le FTP soit difficile à mettre en œuvre de manière sécurisée.

vsftpd démarre juste après l’avoir installé. Ubuntu permet aux utilisateurs locaux de se connecter. Démarrez donc votre client FTP et connectez-vous en tant qu’utilisateur normal avec votre mot de passe système (mon exemple utilise lftp):

> lftp 127.0.0.1 ftp
lftp 127.0.0.1:~> user qbi
Password: #typing my password which I also use to log in via GDM
lftp qbi@127.0.0.1:~> ls
drwxr-xr-x 10 1000 1000   4096 2008-07-28 16:32 Desktop
... many more

Maintenant, j'utilise un type de gestionnaire de fichiers (Nautilus, Shell, etc.) pour créer un nouveau répertoire fooet revenir à mon client FTP:

ftp qbi@127.0.0.1:~> ls -l
...
drwxr-xr-x 2 1000 1000   4096 2010-08-09 13:32 foo

Le répertoire est là et je suis en mesure de l' cdexploiter et de l'utiliser. C'est également pareil si vous avez des utilisateurs spéciaux. Là, vous pouvez également créer des répertoires et ils sont immédiatement accessibles. Ici, il est important de rechercher des droits d'accès.


3

Je recommande humblement un serveur FTP que j'ai écrit moi-même à partir de zéro: JetFTP . C'est extrêmement simple à installer et à utiliser.


Installation:

  • Ajoutez mon PPA à vos sources de logiciels et mettez à jour:

    sudo apt-add-repository ppa:george-edison55/george-edison
    
  • Exécutez la commande suivante:

    sudo apt-get install jetftp
    
  • C'est ça!

L'utilisation de JetFTP est simple: il vous suffit de vous connecter au port à l' 8021aide d'un nom d'utilisateur et d'un mot de passe sur l'ordinateur sur lequel JetFTP est en cours d'exécution.


2

N'utilisez pas ftp , il s'agit d'un protocole intrinsèquement non sécurisé car il envoie le nom d'utilisateur et le mot de passe en clair au serveur. La mise en œuvre de sftp est tout aussi simple et vous obtenez un avantage considérable en termes de sécurité de votre connexion.


problème clair est la meilleure réponse :-)
Sajad Bahmani

0

Il existe trois façons différentes de configurer un serveur FTP:

(1) FTP anonyme:

Les personnes peuvent accéder au serveur uniquement avec le compte anonyme et sans mot de passe. Bien entendu, l’administrateur du serveur fixera une limite pour les téléchargements afin d’empêcher les utilisateurs de placer des fichiers illégaux tels que de la musique, des films ou des jeux piratés.

(2) FTP avec accès anonyme et utilisateurs avec un compte avec mot de passe:

Cette méthode permet aux utilisateurs de comptes anonymes et avec un mot de passe d'entrer sur le serveur. Ils auront uniquement accès à un répertoire spécifié, à l'exception de l'utilisateur racine qui peut voir / modifier / supprimer tous les fichiers et / ou dossiers.

(3) FTP avec support mysql pour l’authentification des utilisateurs virtuels:

Cette méthode autorise l'accès au serveur uniquement pour certains groupes d'utilisateurs pour lesquels il n'existe pas de compte shell d'authentification d'utilisateurs virtuels sur le système. Il utilise un serveur mysql externe qui stocke les informations utilisateur.

Première option: FTP anonyme

Avant de commencer la création d'un serveur ftp anonyme, vous devez ajouter un utilisateur appelé ftp dans votre système, ainsi qu'un répertoire de base. Cette étape est vraiment facile, il suffit de suivre ces commandes:

useradd -d /home/ftp/ftp -s /bin/false ftp

mkdir -p /home/ftp/upload

Cela permet uniquement à ce compte d'écrire dans ce dossier. Vous pouvez utiliser plus de variables pour spécifier ce que fera le serveur FTP. Voici quelques exemples:

-e Allow access to the server only by anonymous users
-B Start the server with background demon
-i Anonymous users can't upload files
-M Let anonymous users create folders
-s ftp user files cannot be downloaded

Deuxième option: '' 'Utilisateurs de comptes anonymes et utilisateurs d'un mot de passe' ''

Pour rendre possible la présence d'utilisateurs de comptes anonymes et d'un mot de passe sur le même serveur, suivez ce petit guide:

-B ,-i ,M, -r, -s same of before
-u <uid> Enable users with a specified user id (uid) to access the server 
-V <Ip address> Only specified IPs will be able to access the server in non-anonymous mode 

Troisième option: '' 'Utilisateurs virtuels avec Mysql' ''

Pour créer un serveur avec le support mysql, suivez ces étapes:

Téléchargez et installez User Manager pour PureFTPd que vous pouvez trouver ici http://machiel.generaal.net/index.php?subject=user_manager_pureftpd

Décompressez-le et téléchargez tout son contenu dans le répertoire www de votre serveur Web, puis écrivez sur votre navigateur ce lien hypertexte http: //localhost/ftp/install.php Suivez toutes les étapes que le programme d'installation vous demande. Copiez et enregistrez la version pureftpd-mysql. .conf dans le répertoire du gestionnaire d’utilisateurs pureftpd

Terminé. Accès au panneau d'administration via ce lien http: // localhost / ftp

Plus d'options à ajouter avant de lancer le processus serveur

-c <num> Max client that can connect to the server
-C <num> Max connections for a IP
-T <bandwitdh> Max bandwitdh disponible for each connection
-n <MBytes> Max MB that a user can have into its home folder
-m <Cpu Loading> Stops the anonymous uploads if the cpu loading exceed from this value 

Et voyez ceci pour certaines applications de serveur ftp:
https://help.ubuntu.com/6.06/ubuntu/serverguide/C/ftp-server.html


4
Lorsque vous copiez et collez une réponse d’un autre endroit, vous devez toujours créditer la source .
Dori

0

L'installation par défaut de VSFTPD n'autorise aucune modification de création / modification par défaut. Vous devez éditer /etc/vsftpd.confet décommenter la ligne suivante ...

write_enable=YES

Deuxièmement, vous devez configurer les autorisations de système de fichiers appropriées sur les fichiers et les dossiers respectifs.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.