Anonymous vsftp
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
yesouno. - 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émonvsftpd, 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_writeet appliquer le typepublic_content_rw_taux 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
- Vsftpd — installation et configuration générale (RHEL/CentOS)
- Vsftpd (Debian) — variante Debian/Ubuntu
- Authentication data on MySQL — authentification par backend MySQL (utilisateurs virtuels, non anonymes)