Comment installer et configurer un serveur FTP dans Ubuntu

FTP (File Transfer Protocol) 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 dans le prochain article). Sinon, il est toujours préférable d’utiliser un FTP sécurisé tel que SFTP.,

lecture suggérée: comment installer et sécuriser un serveur FTP dans CentOS 7

dans ce tutoriel, nous allons montrer comment installer, configurer et sécuriser un serveur FTP (vsftpd en entier « Very Secure FTP Daemon ») dans Ubuntu pour 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 du package système, puis installer le package binaire VSFTPD comme suit:

$ sudo apt-get update$ sudo apt-get install vsftpd

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

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

$ sudo ufw allow 20/tcp$ sudo ufw allow 21/tcp$ sudo ufw status

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

4. Effectuons 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.,conf comme ceci:

$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

ensuite, ouvrons le fichier de configuration vsftpd.

$ sudo vi /etc/vsftpd.confOR$ sudo nano /etc/vsftpd.conf

Ajouter/modifier des options suivantes avec ces valeurs:

anonymous_enable=NO # disable anonymous loginlocal_enable=YES# permit local loginswrite_enable=YES# enable FTP commands which change the filesystemlocal_umask=022 # value of umask for file creation for local usersdirmessage_enable=YES # enable showing of messages when users first enter a new directoryxferlog_enable=YES# a log file will be maintained detailing uploads and downloadsconnect_from_port_20=YES # use port 20 (ftp-data) on the server machine for PORT style connectionsxferlog_std_format=YES # keep standard log file formatlisten=NO # prevent vsftpd from running in standalone modelisten_ipv6=YES # vsftpd will listen on an IPv6 socket instead of an IPv4 onepam_service_name=vsftpd # name of the PAM service vsftpd will useuserlist_enable=YES # enable vsftpd to load a list of usernamestcp_wrappers=YES # turn on tcp wrappers

5. Maintenant, configurez VSFTPD pour autoriser / refuser L’accès FTP aux utilisateurs en fonction du fichier de liste d’utilisateurs /etc/vsftpd.userlist.

Notez que, par défaut, les utilisateurs répertoriés dans userlist_file=/etc/vsftpd.l’accès à la liste d’utilisateurs est refusé avec l’optionuserlist_deny=YES siuserlist_enable=YES.,

mais, l’optionuserlist_deny=NO modifie la signification du paramètre par défaut, donc seulement les utilisateurs dont le nom d’utilisateur est explicitement répertorié dans userlist_file=/etc / vsftpd.userlist sera autorisé à se connecter au serveur FTP.

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 agira comme leur répertoire personnel pour la session FTP uniquement.

ensuite, nous examinerons deux scénarios possibles pour définir le répertoire chrooted jail (racine locale), comme expliqué ci-dessous.

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

chroot_local_user=YESallow_writeable_chroot=YES

l’optionchroot_local_user=YES signifie surtout que les utilisateurs locaux seront placés dans une prison chroot, leur répertoire personnel par défaut après la connexion.

et nous devons également comprendre que VSFTPD ne permet pas au répertoire de prison chroot d’être accessible en écriture, par défaut pour des raisons de sécurité, cependant, nous pouvons utiliser l’option allow_writeable_chroot=YES pour désactiver ce paramètre.

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

------------- On SystemD ------------- # systemctl restart vsftpd------------- On SysVInit ------------- # service vsftpd restart

Étape 3: Test du serveur VsFTP dans Ubuntu

7. Maintenant, nous allons tester le serveur FTP en créant un utilisateur FTP avec la commande useradd comme suit:

$ sudo useradd -m -c "Aaron Kili, Contributor" -s /bin/bash aaronkilik$ sudo passwd aaronkilik

ensuite, nous devons lister explicitement l’utilisateur aaronkilik dans le fichier/etc / vsftpd.liste d’utilisateurs avec la commande echo et la commande tee comme ci-dessous:

$ echo "aaronkilik" | sudo tee -a /etc/vsftpd.userlist$ cat /etc/vsftpd.userlist

8. Maintenant, il est temps de tester nos configurations ci-dessus fonctionnent selon les besoins., Nous allons commencer par tester les 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:

9. Ensuite, testons si un utilisateur n’est pas répertorié dans le fichier /etc/vsftpd.userlist sera autorisé à se connecter, ce qui n’est pas vrai à partir de la sortie qui suit:

10. Maintenant, nous allons procéder à un test pour déterminer si un utilisateur figure dans le fichier /etc/vsftpd.userlist, est en fait placé dans son répertoire personnel après la connexion., Et cela est vrai à partir de la sortie ci-dessous:

vérifier la connexion FTP dans Ubuntu

avertissement: réglage de l’option allow_writeable_chroot=YES peut être si dangereux, il a des implications de sécurité possibles, surtout si les utilisateurs ont l’autorisation de téléchargement, ou plus encore, l’accès Shell. Utilisez-le uniquement si vous savez exactement ce que vous faites.

Il convient de noter que ces implications 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 chroot.,

pour cette raison, dans la section ci-dessous, nous expliquerons une méthode plus sûre pour définir un répertoire racine local non inscriptible différent pour un utilisateur.

Étape 4: Configurer les répertoires personnels des utilisateurs FTP dans Ubuntu

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

$ sudo vi /etc/vsftpd.confOR$ sudo nano /etc/vsftpd.conf

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

#allow_writeable_chroot=YES

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 permissions d’écriture à tous les autres utilisateurs de 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:

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

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

------------- On SystemD ------------- # systemctl restart vsftpd------------- On SysVInit ------------- # service vsftpd restart

13. Maintenant, effectuons une dernière vérification 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 User Home Directory Login

Share

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *