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. C'est 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.
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-ftpd
une 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'utilisateur ftpman
et le placera dans le groupe www-data utilisé par Apache et vous guidera à travers le reste du script de configuration. Une fois que cela est défini, assurez-vous de chmod
le dossier WWW si des erreurs le concernant 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 la commande suivante: Sudo chsh -s /bin/false ftpman
, ce qui changera l’utilisateur Shell en false. (Remplacez ftpman par votre utilisateur ftp)
À 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 affaire 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 utilisent assez bien SFTP, et vous pouvez également utiliser scp
depuis un shell sur le serveur dev pour copier des éléments (scp -R
copiera 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 n'aurez plus à taper de mots de passe :)
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 [email protected]:~> 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 foo
et revenir à mon client FTP:
ftp [email protected]:~> ls -l
...
drwxr-xr-x 2 1000 1000 4096 2010-08-09 13:32 foo
Le répertoire est là et je peux cd
et 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.
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.
Ajouter mon PPA à vos sources de logiciels et mettre à jour:
Sudo apt-add-repository ppa:george-edison55/george-edison
Exécutez la commande suivante:
Sudo apt-get install jetftp
L'utilisation de JetFTP est simple: il suffit de se connecter au port 8021
à l'aide d'un nom d'utilisateur et d'un mot de passe sur l'ordinateur sur lequel JetFTP est en cours d'exécution.
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.
L'installation par défaut de VSFTPD n'autorise aucune créer/modifier des modifications par défaut. Vous devez éditer /etc/vsftpd.conf
et 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.
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 n'ayant 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 http: //localhost/ftp/install.php Suivez toutes les étapes que l'installateur vous demande. Copiez et enregistrez le rge pureftpd-mysql.conf dans le répertoire du gestionnaire d’utilisateurs pureftpd.
Terminé. Accès au panneau d'administration à l'aide de 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 une application serveur ftp:
https://help.ubuntu.com/6.06/ubuntu/serverguide/C/ftp-server.html