avant de commencer
Il est surprenant de voir combien de développeurs web ignorent encore SFTP et les avantages par rapport à FTP / FTPS. SFTP est livré avec un serveur Linux préinstallé et fonctionne comme FTP normal, mais est plus sécurisé et moins de tracas à configurer. Si votre client FTP prend en charge SFTP, vous devez l’utiliser!
- Comment Configurer SFTP pour une racine de document de serveur web
installer vsftpd
commençons par mettre à jour les listes de paquets et installer vsftpd sur Ubuntu 18.04 / 18.10 / 19.04 / 19.10.,
ci-Dessous, nous avons deux commandes séparées par &&
. La première commande mettra à jour les listes de paquets pour vous assurer d’obtenir la dernière version et les dépendances pour vsftpd. La deuxième commande va ensuite télécharger et installer vsftpd. Appuyez sur y
Et ENTER
lorsqu’on vous demande de continuer.
sudo apt update && sudo apt install vsftpd
une Fois installé, vérifiez l’état de vsftpd
sudo service vsftpd status
ci-Dessus, nous pouvons voir notre serveur FTP est maintenant en place et en cours d’exécution.,
configurer le pare-feu
Si vous ne l’avez pas déjà fait, il est recommandé d’activer le pare-feu ufw
Pour Ubuntu 18.04 / 18.10 / 19.04 / 19.10. Avant d’activer le pare-feuufw
, assurez-vous d’ajouter une règle pour SSH, sinon vous risquez d’être bloqué sur votre serveur si vous êtes connecté à distance. Si vous ne souhaitez pas configurer de pare-feu, passez à L’Étape 3.
sudo ufw allow OpenSSH
ouvrons les ports 20 et 21 pour FTP, et les ports 40000-50000 pour FTP passif. Nous ouvrirons également le port 990 pour TLS, que nous mettrons en place plus tard.,
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw allow 990/tcp
Maintenant, activez le pare-feu si elle n’est pas déjà fait. Appuyez sur y
Et ENTER
si vous êtes averti de perturber la connexion SSH.
sudo ufw enable
Pour vérifier l’état du pare-feu, exécuter:
sudo ufw status
Si le pare-feu est en cours d’exécution, vous devriez voir Status: active
et les règles de pare-feu que nous venons d’ajouter.
Créer un Utilisateur FTP
Nous allons maintenant créer un nouvel utilisateur que nous allons utiliser pour vous connecter en FTP., Dans cet exemple, nous allons créer un nouvel utilisateur appelé ftpuser
.
sudo adduser ftpuser
générez un mot de passe fort et protégez-le.
Vous pouvez également être invité à entrer des informations de contact. Vous pouvez simplement appuyer sur ENTER
pour chacun d’entre eux.
Si vous souhaitez uniquement queftpuser
se connecte via FTP, vous devez désactiver leur accès SSH en mettant leur nom d’utilisateur sur liste noire dans le fichier de configuration SSH. Sinon, passez à L’Étape 4.
ouvrez la configuration SSH dans nano.,
sudo nano /etc/ssh/sshd_config
ajoutez ce qui suit au bas du fichier en remplaçantftpuser
par l’utilisateur que vous souhaitez refuser L’accès SSH et SFTP. Vous pouvez ajouter plusieurs utilisateurs ici séparés par un seul espace. (Pour coller dans nano, appuyez sur le bouton droit de la souris).
DenyUsers ftpuser
Pour enregistrer le fichier et quitter, appuyez sur la touche CTRL
+ X
, appuyez sur la touche Y
, puis appuyez sur la touche ENTER
.
Redémarrer le service SSH.,
sudo service sshd restart
autorisations de répertoire
Vous devez maintenant décider où ce nouvel utilisateur FTP est autorisé à afficher et à télécharger des fichiers.
vsftpd utilise les prisons chroot pour restreindre les utilisateurs à leurs répertoires personnels et exige que le répertoire personnel ne soit pas accessible en écriture. Pour cette raison, nous devons configurer certains répertoires et autorisations.
Si vous prévoyez d’utiliser ce compte D’utilisateur FTP pour télécharger des fichiers sur un serveur web, passez à L’étape 4.1. Si vous souhaitez simplement télécharger dans un dossier personnel, passez à L’étape 4.2.
4.1., Télécharger sur un serveur Web
dans de nombreux cas, vous souhaitez pouvoir télécharger des fichiers à la racine du document sur le serveur web.
Si vous avez suivi un guide précédent ici pour configurer plusieurs domaines, la racine de votre document peut être située quelque part comme/var/www/test1.com/public_html
– dans ce cas, vous devrez définir le dossier personnel pour ftpuser
dans le dossier au-dessus de la racine du document: /var/www/test1.com
test1.com pour votre propre domaine).,
Si vous n’utilisez pas plusieurs domaines, nous supposerons que vous utilisez la racine du document par défaut /var/www/html
pour Apache et Nginx dans Ubuntu 18.04 / 18.10 / 19.04 / 19.10. Dans ce scénario, nous avons à faire /var/www/
le répertoire d’accueil de notre utilisateur ftpuser
.
définissons le dossier au-dessus de la racine du document comme répertoire personnel pourftpuser
.
sudo usermod -d /var/www ftpuser
cela permettra à notre utilisateur FTP d’écrire et de modifier des fichiers dans le répertoire racine du document.,
sudo chown ftpuser:ftpuser /var/www/html
Maintenant, passez à l’Étape 5 pour configurer vsftpd.
4.2 Upload to a Home Folder
Si vous souhaitez que cet utilisateur télécharge des fichiers dans le répertoire home, créez un nouveau répertoire appeléftp
dans le répertoire home de l’utilisateur et un autre appeléfiles
. Dans cet exemple ci-dessous notre utilisateur est appelé ftpuser
.
sudo mkdir /home/ftpuser/ftp
l’Ensemble de la propriété de la balise ftp
dossier de pas de nobody:nogroup
.,
sudo chown nobody:nogroup /home/ftpuser/ftp
définissez les autorisations pour le répertoireftp
en utilisantchmod
afin qu’il ne soit accessible en écriture par personne, sinon vsftpd ne vous permettra pas de vous connecter. a-w
signifie a
= tous les/tout le monde -
= supprimer le w
= autorisation d’écriture, donc, supprimer des autorisations d’écriture pour tout le monde.
sudo chmod a-w /home/ftpuser/ftp
Ensuite, nous allons créer un nouveau répertoire à l’intérieur de la balise /ftp
où l’utilisateur peut afficher et télécharger des fichiers.,
sudo mkdir /home/ftpuser/ftp/files
attribuez la propriété de ce répertoire à notre nouvel utilisateur FTP sinon il ne pourra pas y écrire.
sudo chown ftpuser:ftpuser /home/ftpuser/ftp/files
configurer vsftpd
Il y a quelques modifications que nous devons apporter au fichier de configuration vsftpd avant de pouvoir commencer à utiliser FTP sur Ubuntu 18.04 / 18.10 / 19.04 / 19.10.
avant de modifier le fichier de configuration, créez une sauvegarde.
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
Maintenant, ouvrez le fichier de config dans nano
éditeur.,
sudo nano /etc/vsftpd.conf
c’est un fichier assez volumineux mais il est surtout rempli de commentaires pour vous aider.
Vous devez descendre le fichier et vous assurer que les paramètres correspondent à ceux ci-dessous. Remarque: vous pouvez effectuer une recherche dans nano
à l’aide de CTRL
+ W
Rechercher #write_enable=YES
et décommentez en supprimant le signe#. Cela permettra aux utilisateurs FTP d’écrire des fichiers sur le serveur.
write_enable=YES
Rechercher #chroot_local_user=YES
et décommentez en supprimant le signe#. Cela empêchera les utilisateurs FTP de naviguer en dehors de leur propre répertoire.
chroot_local_user=YES
Rechercher #local_umask=022
et décommentez en supprimant le signe#. Cela donnera aux fichiers et dossiers téléchargés les autorisations correctes.
local_umask=022
Nous avons maintenant besoin d’ajouter des directives qui n’existent pas dans le fichier.,
puisque Linux n’affiche pas les fichiers commençant par un point, les fichiers comme .htaccess
ne seront pas visibles dans FTP. Cela peut poser problème si vous avez l’intention d’utiliser Apache et que vous souhaitez travailler avec .htaccess
.
pour forcer vsftpd à afficher les noms de fichiers commençant par un point, collez ce qui suit au bas du fichier. (Pour coller dans nano, appuyez sur le bouton droit de la souris)
force_dot_files=YES
enfin, ajoutons quelques plages de ports pour le FTP passif pour s’assurer que suffisamment de connexions sont disponibles. Collez ce qui suit au bas du fichier., (Pour coller dans nano, appuyez sur le bouton droit de la souris)
pasv_min_port=40000pasv_max_port=50000
Si vous avez suivi l’étape 4.2 précédemment et que vous souhaitez uniquement que cet utilisateur télécharge des fichiers dans le dossier home, nous devons dire à vsftpd que lelocal_root
est le/ftp
N’ajoutez pas ces deux lignes si vous voulez que l’utilisateur télécharge à la racine du document web!
user_sub_token=$USERlocal_root=/home/$USER/ftp
Nous avons fait avec vsftpd.conf pour le moment mais reviendra dans les étapes ultérieures pour configurer la sécurité et SSL.,
Pour enregistrer le fichier et quitter, appuyez sur la touche CTRL
+ X
, appuyez sur la touche Y
, puis appuyez sur la touche ENTER
.
redémarrez vsftpd.
sudo systemctl restart vsftpd
Test FTP
Nous pouvons maintenant tester vsftpd pour voir si nous pouvons nous connecter en tant qu’utilisateur, nous avons créé plus tôt. Nous recommandons FileZilla, qui fonctionne sur Windows, Mac et Linux.
entrez L’adresse IP de votre serveur, votre nom D’utilisateur FTP et votre mot de passe que vous avez créés précédemment, puis cliquez sur Quickconnect.,
ci-dessus, nous pouvons voir que nous nous sommes connectés avec succès et que le répertoire racine webhtml
est affiché, bien que cela puisse être différent sur votre serveur.
essayez de télécharger, de créer et de modifier des dossiers et des fichiers dans le répertoire racine web pour vous assurer que les autorisations fonctionnent correctement.
vous remarquerez que nous avons un avertissement dans FileZilla « statut: serveur non sécurisé, il ne prend pas en charge FTP sur TLS.” Il est fortement recommandé que vous configuriez maintenant TLS de sorte que les qualifications de connexion et le trafic soient chiffrés au-dessus de la connexion FTP.,
Si vous rencontrez des problèmes pour vous connecter au serveur FTP, essayez de vérifier le journal vsftpd. Pour afficher les 200 dernières entrées en utilisanttail
:
sudo tail /var/log/vsftpd.log -n 200
FTP sécurisé avec TLS (facultatif)
Il est important de garder quelques éléments à l’esprit lors de L’utilisation de FTP – il n’est pas crypté par défaut, ce qui signifie que vos informations d’identification et Pour résoudre ce problème, vous devez vous connecter à vsftpd en utilisant FTPS (FTP sur SSL/TLS).
commençons par créer un nouveau certificat avec l’outilopenssl
.,
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
il Vous sera demandé d’entrer dans certains détails, comme le pays, etc. Vous n’avez pas à remplir ces dans. Vous pouvez simplement appuyer sur ENTER
pour les valeurs par défaut.
maintenant que votre clé privée a été créée, nous devons apporter quelques modifications au fichier de configuration vsftpd.
Ouvrez le fichier de config dans nano
éditeur.
sudo nano /etc/vsftpd.conf
Trouver la ligne suivante: (Remarque: vous pouvez effectuer une recherche dans nano
à l’aide de CTRL
+ W
)
ssl_enable=NO
le Modifier:
ssl_enable=YES
collez ce qui suit en dessous.
Enregistrez le fichier et quittez (appuyez sur la touche CTRL
+ X
, appuyez sur la touche Y
, puis appuyez sur la touche ENTER
).
redémarrez vsftpd.
sudo systemctl restart vsftpd
Test TLS avec FileZilla
Nous pouvons maintenant tester le protocole TLS. Nous recommandons FileZilla, qui fonctionne sur Windows, Mac et Linux.,
entrez L’adresse IP de votre serveur, votre nom D’utilisateur FTP et votre mot de passe que vous avez créés précédemment, puis cliquez sur Quickconnect.
un avertissement de certificat inconnu peut vous être présenté. Cliquez sur Toujours faire confiance à ce certificat dans les sessions futures et cliquez sur OK.
Si vous êtes connecté sur TLS, il vous dira dans le journal de connexion. Vous verrez également un cadenas dans le coin inférieur droit.
Vous êtes tous fait!,
Laissez-moi savoir si cela a aidé. Suivez-moi sur Twitter, Facebook et YouTube, ou buy achetez-moi un smoothie.
P. S. j’ai augmenté mes revenus AdSense de 68% en utilisant AI🤖. Lisez mon examen Ezoic pour savoir comment.
Laisser un commentaire