Anonymous vsftp

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Configuration vsftpd — accès anonyme
Paquet vsftpd
Config /etc/vsftpd/vsftpd.conf
PAM /etc/pam.d/vsftpd
Booléens SELinux ftp_home_dir · allow_ftpd_anon_write · allow_ftpd_full_access
Voir aussi Vsftpd · Vsftpd (Debian)

Configuration de vsftpd pour autoriser (ou restreindre à) les connexions FTP anonymes, avec les contextes et booléens SELinux associés.

Booléens SELinux : rappel des types

Les booléens SELinux peuvent prendre trois types de valeurs selon le paramètre concerné :

  • boolean : activable/désactivable, valeur yes ou no.
  • numeric : valeur numérique spécifique.
  • string : associé à des valeurs comme des noms de fichiers.

Utilisateur anonyme

Le compte système utilisé pour les connexions anonymes (créé par le paquet) :

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

Directives principales de vsftpd.conf pour un accès anonyme :

anonymous_enable=YES
chroot_local_user=YES
# write_enable=YES
local_umask=022
#anon_mkdir_write_enable=YES

# s'assurer que les utilisateurs n'ont pas d'accès SUID
#chown_uploads=YES
#chown_username=whoever

ftpd_banner=Welcome to blah FTP service
dirmessage_enable=YES
xferlog_enable=YES
#xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
connect_from_port_20=YES
idle_session_timeout=600
#data_connection_timeout=120
#nopriv_user=ftpsecure
#async_abor_enable=YES
#ls_recurse_enable=YES

#ascii_upload_enable=YES
#ascii_download_enable=YES

#deny_email_enable=YES
#banned_email_file=/etc/vsftpd/banned_emails

# listen et listen_ipv6 sont mutuellement exclusifs dans vsftpd.conf (à vérifier selon
# version) : un seul socket d'écoute (IPv4 ou IPv6) par instance du service
listen=YES
#listen_ipv6=YES

# authentification
pam_service_name=vsftpd
userlist_enable=YES

# pour que tcp_wrappers fonctionne, il faut aussi configurer /etc/hosts.allow et
# /etc/hosts.deny
tcp_wrappers=YES

Pour un serveur en accès anonyme uniquement (aucun utilisateur local ne peut se connecter) :

local_enable=NO

Liste noire d'utilisateurs (PAM)

Ajouter dans /etc/pam.d/vsftpd pour refuser explicitement certains comptes, même en cas d'erreur de lecture du fichier (onerr=succeed) :

auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

Contextes SELinux

  • ftpd_exec_t — appliqué au binaire du démon vsftpd, dans
 /usr/sbin.
  • xferlog_t — appliqué au fichier de log des transferts vsftpd, dans
 /var/log.
  • public_content_t — requis pour les fichiers partagés via le serveur FTP,
 sauf s'ils sont associés au répertoire personnel d'un utilisateur.
  • public_content_rw_t — requis pour les répertoires où des utilisateurs
 connectés en FTP peuvent écrire, sauf s'ils sont associés à un répertoire personnel.

Booléens SELinux

  • Pour permettre l'écriture par des utilisateurs anonymes : activer le booléen
 allow_ftpd_anon_write et appliquer le type public_content_rw_t
 aux répertoires concernés.
  • Pour permettre aux utilisateurs classiques d'accéder à l'ensemble des fichiers du système
 via le serveur FTP : activer allow_ftpd_full_access.
  • Pour permettre aux utilisateurs classiques d'accéder pleinement à leur propre répertoire
 personnel (protégé par leur identifiant/mot de passe) : activer ftp_home_dir.
setsebool -P ftp_home_dir 1

Voir aussi