Comment installer et configurer le serveur FTP dans Ubuntu

Comment installer et configurer le serveur FTP dans Ubuntu

FTP (Protocole de transfer de fichier) est un protocole réseau standard relativement ancien et le plus utilisé utilisé pour télécharger / télécharger des fichiers entre deux ordinateurs sur un réseau. Cependant, FTP par son insécurité d'origine, car il transmet des données avec les informations d'identification de l'utilisateur (nom d'utilisateur et mot de passe) sans cryptage.

Avertissement: Si vous prévoyez d'utiliser FTP, Envisagez de configurer la connexion FTP avec SSL / TLS (couvrira l'article suivant). Sinon, il est toujours préférable d'utiliser un FTP sécurisé tel que SFTP.

Lire suggérée: Comment installer et sécuriser le serveur FTP dans CentOS 7

Dans ce tutoriel, nous montrerons comment installer, configurer et sécuriser un FTP serveur (Vsftpd en entier "Démon FTP très sécurisé") dans Ubuntu Avoir une sécurité puissante contre les vulnérabilités FTP.

Étape 1: Installation du serveur VSFTP dans Ubuntu

1. Tout d'abord, nous devons mettre à jour la liste des sources de packages système, puis installer Vsftpd Package binaire comme suit:

$ sudo apt-get updat $ sudo apt-get install vsftpd 

2. Une fois l'installation terminée, le service sera désactivé initialement, nous devons donc le démarrer manuellement pendant le temps moyen et lui permettre de démarrer automatiquement à partir du prochain démarrage système:

------------- Sur systemd ------------- # systemctl start vsftpd # systemctl activer vsftpd ------------- Sur sysvinit ------------- # Service vsftpd Démarrage # Chkconfig - Level 35 VSFTPD ON 

3. Ensuite, si le pare-feu UFW est activé (ce n'est pas activé par défaut) sur le serveur, vous devez ouvrir des ports 21 et 20 Lorsque les démons FTP écoutent, afin de permettre l'accès aux services FTP à partir de machines distantes, ajoutez les nouvelles règles de pare-feu comme suit:

$ sudo ufw permettre 20 / tcp $ sudo ufw permettre 21 / tcp $ sudo ufw statut 

Étape 2: Configuration et sécurisation du serveur VSFTP dans Ubuntu

4. Perdons maintenant quelques configurations pour configurer et sécuriser notre serveur FTP, nous allons d'abord créer une sauvegarde du fichier de configuration d'origine / etc / vsftpd / vsftpd.confli ainsi:

$ sudo cp / etc / vsftpd.conf / etc / vsftpd.confli.origine 

Ensuite, ouvrons le vsftpd fichier de configuration.

$ sudo vi / etc / vsftpd.conf ou $ sudo nano / etc / vsftpd.confli 

Ajouter / modifier les options suivantes avec ces valeurs:

anonymous_enable = non # Disable Anonymous Login local_enable = yes # permettez les connexions locales write_enable = yes # # activer les commandes FTP qui modifient le système de fichiers local_umask = 022 # valeur de umask pour la création de fichiers pour les utilisateurs locaux dirMessage_enable = oui # Activer la diffusion de messages lorsque les utilisateurs entrent en entrée pour les utilisateurs. Un nouveau répertoire xferlog_enable = Oui # Un fichier journal sera maintenu en détail les téléchargements et téléchargement connect_from_port_20 = oui # Utilisez le port 20 (ftp-data) sur la machine du serveur pour les connexions de style de port xferlog_std_format = oui # gardien de fichier journal standard format écouter = non # # # # # # Empêcher VSftpd de fonctionner en mode autonome écouter_ipv6 = oui # vsftpd écoutera sur une prise IPv6 au lieu d'un ipv4 un pam_service_name = vsftpd # nom du service pam vsftpd utilisera userList_enable = oui # enable vsftpd pour charger une liste de noms userner tcp_wrapppers = oui # activer les emballages TCP 

5. Maintenant, configurez Vsftpd Pour permettre / refuser l'accès FTP aux utilisateurs en fonction du fichier de liste d'utilisateurs / etc / vsftpd.liste d'utilisateur.

Notez que par défaut, les utilisateurs ont indiqué userList_file = / etc / vsftpd.liste d'utilisateur sont refusés l'accès à la connexion avec userList_deny = oui option si userList_enable = Oui.

Mais, l'option userList_deny = non Twist la signification du paramètre par défaut, donc seuls les utilisateurs dont le nom d'utilisateur est explicitement répertorié dans userList_file = / etc / vsftpd.liste d'utilisateur sera autorisé à se connecter au serveur FTP.

UserList_enable = Oui # VSFTPD Chargera une liste de noms d'utilisateur, à partir du nom de fichier donné par UserList_File UserList_File = / etc / VSftpd.liste d'utilisateurs # stocke des noms d'utilisateur. userList_deny = non 

Important: Lorsque les utilisateurs se connectent au serveur FTP, ils sont placés dans une prison chrootée, c'est le répertoire racine local qui servira de répertoire domestique pour la session FTP uniquement.

Ensuite, nous examinerons deux scénarios possibles sur la façon de définir le répertoire de prison chrooté (racine locale), comme expliqué ci-dessous.

6. À ce stade, ajoutons / modifions / décommentions ces deux options suivantes pour restreindre les utilisateurs FTP à leurs répertoires domestiques.

chroot_local_user = oui allow_writable_chroot = oui 

L'option chroot_local_user = oui Il est important de dire que les utilisateurs locaux seront placés dans une prison de chroot, leur répertoire domestique par défaut après la connexion.

Et nous devons tout aussi bien comprendre que VSFTPD ne permet pas au répertoire de la prison de chroot d'être écrit, par défaut pour des raisons de sécurité, cependant, nous pouvons utiliser l'option allow_writeable_chroot = oui Pour désactiver ce paramètre.

Enregistrez le fichier et fermez-le. Ensuite, nous devons redémarrer les services VSFTPD pour les changements ci-dessus pour prendre effet:

------------- Sur systemd ------------- # SystemCTL Redémarrer VSFTPD ------------- Sur sysvinit ------------- # Service VSFTPD Redémarrer 

Étape 3: Tester le serveur VSFTP dans Ubuntu

7. Nous allons maintenant tester FTP Server en créant un utilisateur FTP avec une commande userAdd comme suit:

$ sudo useradd -m -c "Aaron kili, contributeur" -s / bin / bash aaronkilik $ sudo passwd aaronkilik 

Ensuite, nous devons énumérer explicitement l'utilisateur aaronkilik dans le fichier / etc / vsftpd.liste d'utilisateur avec la commande echo et commande de tee-shirt Comme ci-dessous:

$ echo "aaronkilik" | Sudo Tee -a / etc / vsftpd.liste d'utilisateurs $ cat / etc / vsftpd.liste d'utilisateur 

8. Il est maintenant temps de tester nos configurations ci-dessus fonctionnent au besoin. Nous commencerons par tester des connexions anonymes; Nous pouvons clairement voir à partir de la sortie ci-dessous que les connexions anonymes ne sont pas autorisées sur le serveur FTP:

# FTP 192.168.56.102 Connecté à 192.168.56.102 (192.168.56.102). 220 Bienvenue à Tecmint.service ftp com. Nom (192.168.56.102: Aaronkilik): Anonyme 530 Autorisation refusée. échec de la connexion. FTP> BYE 221 Au revoir. 

9. Ensuite, testons si un utilisateur n'est pas répertorié dans le fichier / etc / vsftpd.liste d'utilisateur sera accordé l'autorisation de se connecter, ce qui n'est pas vrai à partir de la sortie qui suit:

# FTP 192.168.56.102 Connecté à 192.168.56.102 (192.168.56.102). 220 Bienvenue à Tecmint.service ftp com. Nom (192.168.56.10: Root): User1 530 Permission refusée. échec de la connexion. FTP> BYE 221 Au revoir. 

dix. Nous allons maintenant effectuer un test final pour déterminer si un utilisateur répertorié dans le fichier / etc / vsftpd.liste d'utilisateur, est en fait placé dans son répertoire d'origine après la connexion. Et cela est vrai à partir de la sortie ci-dessous:

# FTP 192.168.56.102 Connecté à 192.168.56.102 (192.168.56.102). 220 Bienvenue à Tecmint.service ftp com. Nom (192.168.56.102: AaronKilik): AaronKilik 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> LS 
Vérifiez la connexion FTP dans Ubuntu

Avertissement: Définir l'option allow_writeable_chroot = oui Peut être si dangereux, il a des implications de sécurité possibles, surtout si les utilisateurs ont une autorisation de téléchargement, ou plus, l'accès à la coquille. Utilisez-le uniquement si vous savez exactement ce que vous faites.

Nous devons noter que ces implications en matière de sécurité ne sont pas spécifiques à VSFTPD, elles peuvent également affecter tous les autres démons FTP qui proposent de placer les utilisateurs locaux dans des prisons de chroot.

Pour cette raison, dans la section ci-dessous, nous expliquerons une méthode plus sécurisée pour définir un autre répertoire racine local non-nrabilité pour un utilisateur.

Étape 4: Configurer les répertoires domestiques des utilisateurs FTP à Ubuntu

11. Maintenant, ouvrez le fichier de configuration VSFTPD une fois de plus.

$ sudo vi / etc / vsftpd.conf ou $ sudo nano / etc / vsftpd.confli 

et commentez l'option non sécurisée en utilisant le # caractère comme indiqué ci-dessous:

# allow_writable_chroot = oui 

Ensuite, créez le répertoire racine local alternatif pour l'utilisateur (aaronkilik, Le vôtre n'est peut-être pas le même) et définissez les autorisations requises en désactivant les autorisations d'écriture à tous les autres utilisateurs à ce répertoire:

$ sudo mkdir / home / aaronkilik / ftp $ sudo chown nobody: nogroup / home / aaronkilik / ftp $ sudo chmod a-w / home / aaronkilik / ftp 

12. Ensuite, créez un répertoire sous la racine locale avec les autorisations appropriées où l'utilisateur stockera ses fichiers:

$ sudo mkdir / home / aaronKilik / ftp / fichiers $ sudo chown -r aaronkilk: aaronkilik / home / aaronkilik / ftp / fichiers $ sudo chmod -r 0770 / home / aaronkilik / ftp / fichiers / 

Ensuite, ajoutez / modifiez les options ci-dessous dans le fichier de configuration VSFTPD avec leurs valeurs correspondantes:

user_sub_token = $ user # inserte le nom d'utilisateur dans le répertoire racine local local_root = / home / $ user / ftp # définit tout répertoire racine local des utilisateurs 

Enregistrez le fichier et fermez-le. Et redémarrez les services VSFTPD avec les paramètres récents:

------------- Sur systemd ------------- # SystemCTL Redémarrer VSFTPD ------------- Sur sysvinit ------------- # Service VSFTPD Redémarrer 

13. Maintenant, effectuons un contrôle final et assurez-vous que le répertoire racine local de l'utilisateur est le répertoire FTP que nous avons créé dans son répertoire personnel.

# FTP 192.168.56.102 Connecté à 192.168.56.102 (192.168.56.102). 220 Bienvenue à Tecmint.service ftp com. Nom (192.168.56.10: AaronKilik): AaronKilik 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> LS 
Connexion du répertoire domestique de l'utilisateur FTP

C'est ça! N'oubliez pas de partager votre opinion sur ce guide via le formulaire de commentaire ci-dessous ou de nous fournir des informations importantes concernant le sujet.

Enfin et surtout, ne manquez pas notre prochain article, où nous décrire comment sécuriser un serveur FTP à l'aide de connexions SSL / TLS dans Ubuntu 16.04/16.10, jusque-là, restez toujours à l'écran à Tecmint.