FTP, ou File Transfer Protocol, est un protocole standard pour l'envoi et la réception de fichiers à partir de serveurs distants. Il est plus facile à utiliser que les alternatives de ligne de commande comme scp
, en particulier avec les interfaces GUI comme FileZilla.
Qu'est-ce que FTP?
Dans les temps anciens d'Internet, les serveurs FTP publics étaient un moyen très courant de mettre des fichiers à la disposition d'un grand nombre de personnes. Aujourd'hui, FTP est toujours là et largement utilisé pour les tâches administratives.
Alors qu'une certaine forme de CLI FTP est fournie avec la plupart des principaux systèmes d'exploitation, les clients GUI comme FileZilla rendre le processus de déplacement de fichiers entre serveurs aussi simple que de glisser-déposer du stockage local vers le stockage distant, ou vice versa. Tout le trafic sous-jacent est géré via FTP.
Pour configurer cela, vous devez installer et configurer un serveur FTP, tel que vsftpd
, sur la machine distante à laquelle vous souhaitez accéder.
Il convient de noter que les utilisateurs connectés via FTP auront accès à votre système, tout comme vous. Vous pouvez prendre certaines mesures pour atténuer ces risques, telles que l'accès à la liste blanche et le verrouillage des utilisateurs dans leurs répertoires personnels.
Installation de vsftpd
Pour commencer, installez vsftpd
à partir du gestionnaire de packages de votre distribution. Pour les systèmes basés sur Debian comme Ubuntu, cela proviendrait apte
:
sudo apt-get install vsftpd
Ensuite, vous devrez démarrer le service et le configurer pour qu'il s'exécute au moment du démarrage:
systemctl démarrer vsftpd
systemctl activer vsftpd
FTP a deux méthodes principales d'authentification:
- FTP anonyme, où n'importe qui peut se connecter sans mot de passe. Ceci est utilisé pour le partage de fichiers publics et est désactivé par défaut.
- Connexion utilisateur local, qui permet à tout utilisateur de
/ etc / passwd
pour accéder au FTP en utilisant un nom d'utilisateur et un mot de passe.
Vous souhaiterez probablement activer la connexion des utilisateurs locaux et désactiver l'accès anonyme. La connexion à FTP à l'aide de votre compte utilisateur vous donnera accès à tout ce que votre compte peut accéder.
S'ouvrir /etc/vsftpd.conf
dans votre éditeur de texte préféré et remplacez la ligne suivante par OUI
:
local_enable = OUI
Si vous souhaitez pouvoir télécharger des fichiers, modifiez write_enable
à OUI
ainsi que:
write_enable = OUI
Avec un redémarrage de vsftpd
(systemctl redémarrer vsftpd
), vous devriez maintenant pouvoir vous connecter au FTP en utilisant un client comme FileZilla ou la CLI sur votre machine personnelle.
Si vous souhaitez uniquement activer FTP pour des utilisateurs spécifiques, vous pouvez accéder à la liste blanche. S'ouvrir /etc/vsftpd.userlist
et ajoutez les noms de chaque compte que vous souhaitez activer sur des lignes séparées.
nano /etc/vsftpd.userlist
Ensuite, ajoutez les lignes suivantes à /etc/vsftpd.conf
:
userlist_enable = OUI userlist_file = / etc / vsftpd.userlist userlist_deny = NON
Cela limitera l'accès aux seuls utilisateurs définis dans le fichier de liste d'utilisateurs et refusera tous les autres.
Si vous ne voulez pas que les utilisateurs accèdent à des fichiers en dehors de leur répertoire personnel, vous pouvez les placer dans une prison chroot, ce qui les empêchera d’interagir avec les répertoires de niveau supérieur. Vous pouvez l'activer en décommentant la ligne suivante dans /etc/vsftpd.conf
:
chroot_local_user = OUI
Redémarrer vsftpd
avec systemctl redémarrer vsftpd
pour appliquer les modifications.
Configuration de FTPS
Le trafic FTP standard est envoyé non chiffré comme HTTP. Ce n’est évidemment pas génial, vous devez donc configurer vsftpd
pour crypter le trafic avec TLS.
Pour ce faire, générez une nouvelle clé et signez une requête avec openssl
:
openssl genrsa -des3 -out FTP.key
demande openssl -Nouveau -key FTP.key -out certificate.csr
vsftpd
nécessite la suppression du mot de passe de cette clé, alors copiez la clé et renvoyez openssl
:
cp FTP.key FTP.key.orig openssl rsa -in FTP.key.orig -out ftp.key
Enfin, générez un certificat TLS à l'aide de cette clé:
openssl x509 -req-jours 365 -dans certificate.csr -signkey ftp.key -out mycertificate.crt
Copiez la clé et le certificat dans / etc / pki / tls / certs /
:
cp ftp.key / etc / pki / tls / certs / cp mycertificate.crt / etc / pki / tls / certs
Maintenant que tous les certificats sont configurés, vous pouvez à nouveau ouvrir /etc/vsftpd.conf
et ajoutez les lignes suivantes:
ssl_enable = OUI allow_anon_ssl = OUI ssl_tlsv1 = OUI ssl_sslv2 = NON ssl_sslv3 = NON rsa_cert_file = / etc / pki / tls / certs / mycertificate.crt rsa_private_key_file = / etc / pki / tls / certs / ftp.key ssl_ciphers = HAUT require_ssl_reuse = NON
Redémarrer vsftpd
avec systemctl redémarrer vsftpd
pour appliquer les modifications.