Le paquet vsftpd contient un démon FTP très petit et très sécurisé. C'est utile pour partager des fichiers sur un réseau.
This package is known to build and work properly using an LFS 12.1 platform.
Téléchargement (HTTP) : https://security.appspot.com/downloads/vsftpd-3.0.5.tar.gz
Somme de contrôle MD5 : efbf362a65bec771bc15ad311f5a982e
Taille du téléchargement : 210 Ko
Estimation de l'espace disque requis : 1.9 Mo
Estimation du temps de construction : moins de 0,1 SBU
Pour des raisons de sécurité, l'exécution de vsftpd en tant qu'utilisateur et groupe non
privilégiés est recommandée. Vous devriez aussi créer un
utilisateur pour y associer les utilisateurs anonymes. En tant
qu'utilisateur root
, créez les
répertoires, les utilisateurs et les groupes nécessaires, avec les
commandes suivantes :
install -v -d -m 0755 /usr/share/vsftpd/empty && install -v -d -m 0755 /home/ftp && groupadd -g 47 vsftpd && groupadd -g 45 ftp && useradd -c "vsftpd User" -d /dev/null -g vsftpd -s /bin/false -u 47 vsftpd && useradd -c anonymous_user -d /home/ftp -g ftp -s /bin/false -u 45 ftp
Gcc-10 et supérieur indique une erreur sur une conversion de type implicite. Rendez-la explicite :
sed -e "s/kVSFSysStrOpenUnknown;/(enum EVSFSysUtilOpenMode)&/" -i sysstr.c
Construisez vsftpd en tant qu'utilisateur non privilégié en utilisant la commande suivante :
make
Ce paquet n'a pas de suite de tests.
De nouveau, devenez utilisateur root
et installez vsftpd avec les commandes suivantes :
install -v -m 755 vsftpd /usr/sbin/vsftpd && install -v -m 644 vsftpd.8 /usr/share/man/man8 && install -v -m 644 vsftpd.conf.5 /usr/share/man/man5 && install -v -m 644 vsftpd.conf /etc
install -v -d
... : Ceci crée le répertoire que les
utilisateurs anonymes utiliseront (/home/ftp
) et le répertoire sur lequel se
chrootera le démon (/usr/share/vsftpd/empty
).
/home/ftp
ne devrait pas appartenir
à l'utilisateur vsftpd
ou
ftp
.
echo "#define VSF_BUILD_TCPWRAPPERS" >>builddefs.h : Utilisez ceci avant make pour ajouter le support de tcpwrappers.
echo "#define VSF_BUILD_SSL" >>builddefs.h : Utilisez ceci avant make pour ajouter le support de SSL.
install -v -m
... : Le Makefile
utilise des chemins d'installation non
standards. Ces commandes installent les fichiers dans /usr
et /etc
.
vsftpd est fourni avec un
fichier de configuration pour utilisateur anonyme seulement qui a
été copié ci-dessus dans /etc
.
Toujours en tant qu'utilisateur root
, vous devriez modifier ce fichier car il
n'est pas recommandé de lancer vsftpd en mode autonome. Vous
devriez aussi spécifier une séparation des privilèges avec
l'utilisateur créé ci-dessus. Enfin, vous devriez indiquer le
répertoire chroot.
man vsftpd.conf
vous donnera tous les détails
cat >> /etc/vsftpd.conf << "EOF"
background=YES
nopriv_user=vsftpd
secure_chroot_dir=/usr/share/vsftpd/empty
EOF
Pour activer l'authentification locale, ajoutez les lignes
suivantes au fichier /etc/vsftpd.conf
(en tant qu'utilisateur
root
) :
cat >> /etc/vsftpd.conf << "EOF"
local_enable=YES
EOF
De plus, si vous utilisez Linux-PAM et vsftpd avec l'authentification locale, vous
aurez besoin d'un fichier de configuration Linux-PAM. En tant qu'utilisateur
root
, créez le fichier
/etc/pam.d/vsftpd
et ajoutez les
changements de configuration requis pour le support des sessions
Linux-PAM avec les commandes
suivantes :
cat > /etc/pam.d/vsftpd << "EOF" &&# Begin /etc/pam.d/vsftpd auth required /lib/security/pam_listfile.so item=user sense=deny \ file=/etc/ftpusers \ onerr=succeed auth required pam_shells.so auth include system-auth account include system-account session include system-session
EOF cat >> /etc/vsftpd.conf << "EOF"session_support=YES pam_service_name=vsftpd
EOF
Installez l'unité vsftpd.service
incluse dans le paquet
blfs-systemd-units-20240205 :
make install-vsftpd