Comment configurer le serveur FTP sur Debian 9 Stretch Linux

Comment configurer le serveur FTP sur Debian 9 Stretch Linux

Objectif

L'objectif est d'installer et de configurer le serveur FTP sur Debian 9 Stretch Linux permettant à la fois un accès aux utilisateurs anonymes ou locaux.

Système d'exploitation et versions logicielles

  • Système opérateur: - Debian 9 Stretch
  • Logiciel: - VSFTPD Version 3.0.3

Exigences

Accès privilégié à

Difficulté

MOYEN

Conventions

  • # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
  • $ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier

Instructions

Le tutoriel suivant expliquera comment installer et configurer le serveur FTP à l'aide vsftpd démon. Il discutera également de diverses configurations pour permettre l'écriture ou l'accès en lecture seule à l'utilisateur anonyme ainsi qu'aux utilisateurs locaux.

Installation VSFTPD

Commençons par l'installation du client VSFPTD et FTP:

# APT INSTALLER VSFTPD FTP 

Par défaut, le serveur VSFTPD est configuré pour permettre aux utilisateurs du système d'accéder à leurs répertoires domestiques avec un accès en lecture seule. Ce qui suit est un fichier de configuration par défaut Vsftpd / etc / vsftpd.confli:



écouter = non écouter_ipv6 = oui anonymous_enable = no local_enable = oui dirMessage_enable = oui use_localtime = oui xferlog_enable = oui connect_from_port_20 = oui sécuris_chroot_dir = / var / run / vsftpd / vide pam_service_name = vsftpd rsa_cert_file = / ssl / ssl l'huile de serpent.pem rsa_private_key_file = / etc / ssl / private / ssl-cerner-sakeoil.clé ssl_enable = non 

Comme déjà mentionné, le fichier de configuration ci-dessus n'accordera qu'un accès en lecture seule à tout utilisateur système répertorié dans / etc / passwd déposer. Utiliser FTP Commande et tentez de se connecter à l'aide du nom d'utilisateur et du mot de passe de l'un des utilisateurs du système local:

# FTP localhost connecté à localhost. 220 (vsftpd 3.0.3) Nom (localhost: root): LinuxConfig 331 Veuillez spécifier le mot de passe. Mot de passe: 230 Connexion réussie. Le type de système distant est Unix. Utiliser le mode binaire pour transférer des fichiers. FTP> Put Fichier.Txt local: fichier.TXT Remote: fichier.TXT 200 EPRT Commande réussie. Envisagez d'utiliser EPSV. 550 autorisation refusée. 

Si vous n'avez besoin que d'un accès en lecture seule par vos utilisateurs locaux, vous avez terminé.



Autoriser l'accès à l'écriture de l'utilisateur

Pour ajouter un accès en écriture pour tous les communications utilisateur local du système ou ajouter la strophe suivante write_enable = oui. Le nouveau fichier de configuration se compose:

écouter = non écouter_ipv6 = oui anonymous_enable = no local_enable = oui dirMessage_enable = oui use_localtime = oui xferlog_enable = oui connect_from_port_20 = oui sécuris_chroot_dir = / var / run / vsftpd / vide pam_service_name = vsftpd rsa_cert_file = / ssl / ssl l'huile de serpent.pem rsa_private_key_file = / etc / ssl / private / ssl-cerner-sakeoil.clé ssl_enable = non write_enable = oui 

Ensuite, redémarrez votre VSFTPD:

# SystemCTL Redémarrer VSFTPD 

Effectuer un nouveau test avec FTP commande pour confirmer l'accès en écriture:

# FTP localhost connecté à localhost. 220 (vsftpd 3.0.3) Nom (localhost: root): LinuxConfig 331 Veuillez spécifier le mot de passe. Mot de passe: 230 Connexion réussie. Le type de système distant est Unix. Utiliser le mode binaire pour transférer des fichiers. FTP> Put Fichier.Txt local: fichier.TXT Remote: fichier.TXT 200 EPRT Commande réussie. Envisagez d'utiliser EPSV. 150 OK pour envoyer des données. 226 Transfert complet. FTP> LS 200 EPRT Commande réussie. Envisagez d'utiliser EPSV. 150 voici la liste des répertoires. -RW ------- 1 1000 1000 0 juin 07 12:45 Fichier.TXT 226 Répertoire Envoyer OK. 


Autoriser les utilisateurs spécifiques uniquement

Pour le moment, notre serveur FTP permet d'accéder à tout utilisateur système défini dans / etc / passwd déposer. Afin de permettre uniquement aux utilisateurs spécifiques de pouvoir vous connecter, nous pouvons inclure les lignes suivantes dans notre fichier de configuration:

userList_file = / etc / vsftpd.UserList userList_enable = Oui 

Ce qui précède permettra une liste d'utilisateurs prédéfinie où tout utilisateur répertorié dans / etc / vsftpd.liste d'utilisateur (Un nom d'utilisateur par ligne) aura accès au FTP refusé tandis que tous les autres utilisateurs du système pourront se connecter. Créons un nouveau / etc / vsftpd.liste d'utilisateur Liste d'utilisateurs composée d'un seul utilisateur linuxconfig:

# echo linuxconfig> / etc / vsftpd.liste d'utilisateur 

Redémarrer le serveur VSFTPD:

# SystemCTL Redémarrer VSFTPD 

Effectuer un nouveau test avec FTP commande pour confirmer l'accès refusé au serveur FTP pour linuxconfig utilisateur:

# FTP localhost connecté à localhost. 220 (vsftpd 3.0.3) Nom (localhost: root): LinuxConfig 530 Permission refusée. échec de la connexion. ftp> 

Cependant, si vous devez être en mesure de vous connecter uniquement avec les utilisateurs définis dans / etc / vsftpd.liste d'utilisateur, Ajouter l'option de configuration suivante userList_deny = non dans votre fichier de configuration VSFTPD / etc / vsftpd.confli. Ci-dessous est notre actuel / etc / vsftpd.confli fichier de configuration:

écouter = non écouter_ipv6 = oui anonymous_enable = no local_enable = oui dirMessage_enable = oui use_localtime = oui xferlog_enable = oui connect_from_port_20 = oui sécuris_chroot_dir = / var / run / vsftpd / vide pam_service_name = vsftpd rsa_cert_file = / ssl / ssl l'huile de serpent.pem rsa_private_key_file = / etc / ssl / private / ssl-cerner-sakeoil.clé ssl_enable = non write_enable = oui userList_file = / etc / vsftpd.UserList userList_enable = Oui UserList_deny = Non 


Autoriser Anonyme

À ce stade, nous allons également autoriser l'accès en lecture seule par les utilisateurs anonymes. Commençons à créer un nouveau répertoire qui sera utilisé comme répertoire racine pour l'utilisateur anonyme, par exemple. / var / ftp. À des fins de test, nous pouvons également placer un fichier de test arbitraire dans / var / ftp:

# mkdir / var / ftp / # chmod 555 / var / ftp / # chown ftp.FTP / VAR / FTP / # Touch / Var / FTP / Anonymous.SMS 

De plus, inclure les lignes suivantes dans / etc / vsftpd.confli Fichier de configuration pour définir le répertoire domestique anonyme et l'accès anonyme:

anon_root = / var / ftp anonymous_enable = oui 

Éventuellement, ajouter no_anon_password = oui ligne pour instruire VSFTPD pour permettre à l'utilisateur anonyme de se connecter automatiquement sans le mot de passe. Puisque nous avons maintenant défini la liste d'utilisateurs, nous devons également ajouter le anonyme Utilisateur à la liste:

# echo anonymous >> / etc / vsftpd.liste d'utilisateurs # cat / etc / vsftpd.list linuxconfig anonymous 

Comme redémarrez habituellement votre serveur FTP et effectuez une validité de votre configuration actuelle:

# SystemCTL Redémarrer VSFTPD 

Tester la connexion anonyme:

# FTP localhost connecté à localhost. 220 (vsftpd 3.0.3) Nom (localhost: root): Anonyme 230 Login réussi. Le type de système distant est Unix. Utiliser le mode binaire pour transférer des fichiers. FTP> LS 200 EPRT Commande réussie. Envisagez d'utiliser EPSV. 150 voici la liste des répertoires. -rw-r - r-- 1 0 0 0 juin 07 13:29 Anonyme.TXT 226 Répertoire Envoyer OK. ftp> 

Vous trouverez ci-dessous notre fichier de configuration VSFTPD actuel:

écouter = non écouter_ipv6 = oui anonymous_enable = no local_enable = oui dirMessage_enable = oui use_localtime = oui xferlog_enable = oui connect_from_port_20 = oui sécuris_chroot_dir = / var / run / vsftpd / vide pam_service_name = vsftpd rsa_cert_file = / ssl / ssl l'huile de serpent.pem rsa_private_key_file = / etc / ssl / private / ssl-cerner-sakeoil.clé ssl_enable = non write_enable = oui userList_file = / etc / vsftpd.UserList userList_enable = Oui UserList_deny = Non anon_root = / var / ftp anonymous_enable = oui no_anon_password = oui 


Activer l'accès à l'écriture anonyme

Ensuite, permettons à l'utilisateur anonyme de télécharger des fichiers et de créer de nouveaux répertoires et plus. Pour ce faire, créez un nouveau répertoire télécharger dans / var / ftp annuaire:

# mkdir / var / ftp / téléchargement # chown ftp.ftp / var / ftp / upload / 

Ensuite, ajoutez les lignes suivantes dans votre fichier de configuration VSFTPD:

anon_upload_enable = oui anon_other_write_enable = oui anon_mkdir_write_enable = oui 

Redémarrez votre serveur:

# SystemCTL Redémarrer VSFTPD 

Après le redémarrage, l'utilisateur anonyme pourra télécharger des fichiers, créez des répertoires de renommée des fichiers:

# FTP localhost connecté à localhost. 220 (vsftpd 3.0.3) Nom (localhost: root): Anonyme 230 Login réussi. Le type de système distant est Unix. Utiliser le mode binaire pour transférer des fichiers. FTP> LS 200 EPRT Commande réussie. Envisagez d'utiliser EPSV. 150 voici la liste des répertoires. -rw-r - r-- 1 0 0 0 juin 07 13:29 Anonyme.Txt drwxr-xr-x 2 108 112 4096 juin 07 13:57 Téléchargement 226 Répertoire Envoyer OK. FTP> CD Téléchargement 250 Répertoire a changé avec succès. FTP> Put Fichier.Txt local: fichier.TXT Remote: fichier.TXT 200 EPRT Commande réussie. Envisagez d'utiliser EPSV. 150 OK pour envoyer des données. 226 Transfert complet. FTP> LS 200 EPRT Commande réussie. Envisagez d'utiliser EPSV. 150 voici la liste des répertoires. -RW ------- 1 108 112 0 juin 07 13:57 Fichier.TXT 226 Répertoire Envoyer OK. FTP> Renommer le fichier.Txt nouveau.Txt 350 prêt pour rnto. 250 Renommer réussi. FTP> LS 200 EPRT Commande réussie. Envisagez d'utiliser EPSV. 150 voici la liste des répertoires. -RW ------- 1 108 112 0 juin 07 13:57 Nouveau.TXT 226 Répertoire Envoyer OK. ftp> 

Vous trouverez ci-dessous notre fichier de configuration VSFTPD final:

écouter = non écouter_ipv6 = oui anonymous_enable = no local_enable = oui dirMessage_enable = oui use_localtime = oui xferlog_enable = oui connect_from_port_20 = oui sécuris_chroot_dir = / var / run / vsftpd / vide pam_service_name = vsftpd rsa_cert_file = / ssl / ssl l'huile de serpent.pem rsa_private_key_file = / etc / ssl / private / ssl-cerner-sakeoil.clé ssl_enable = non write_enable = oui userList_file = / etc / vsftpd.UserList userList_enable = Oui UserList_deny = non anon_root = / var / ftp anonymous_enable = oui no_anon_password = oui anon_upload_enable = oui anon_other_write_enable = oui anon_mkdir_write_enable = oui 

annexe

Message d'erreur:

# FTP localhost connecté à localhost. 220 (vsftpd 3.0.3) Nom (LocalHost: Root): Anonymous 500 oups: VSftpd: refuser de fonctionner avec une racine écrite à l'intérieur de Chroot () Login a échoué. ftp> 

Ce qui précède indique que votre anon_root Le répertoire est écrit. La solution consiste à le faire en lecture seule. Exemple:

# chmod 555 / var / ftp 

Alternativement, essayez d'ajouter la ligne suivante dans votre fichier de configuration VSFTPD:

allow_writeable_chroot = oui 

Tutoriels Linux connexes:

  • Configuration du serveur FTP sur Linux
  • Choses à installer sur Ubuntu 20.04
  • Comment configurer vsftpd sur Debian
  • Comment configurer le serveur et le client FTP / SFTP sur Almalinux
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Fichiers de configuration Linux: 30 premiers
  • Choses à installer sur Ubuntu 22.04
  • Téléchargement Linux
  • Liste des clients FTP et installation sur Ubuntu 22.04 Linux…