Vsftpd
De Wiki de Nelly & Richard.
Sommaire |
Présentation
vsftpd Very Secure FTP daemon : est un serveur FTP simple et sécurisé fonctionnant sous UNIX/LINUX. Il est inclus dans les meilleures distributions LINUX comme RedHat, fedora core ou encore SuSe, on le trouve sur UNIX ou plus précisément openBSD.
Installation
- Pour la plupart des distributions :
$ apt-get install vsftpd
- sinon :
$ yum -y install vsftpd
- ou :
http://vsftpd.beasts.org/#download
Configuration
simple anonyme
exemple de fichier /etc/vsftpd/vsftpd.conf
# LOGIN # # choix de l'utilisateur anonyme ftp_username=ftp_user # # Allow anonymous FTP? (Beware - allowed by default if you comment this out). anonymous_enable=YES # # Uncomment this to allow local users to log in. local_enable=NO # # Permissions (anonymes) write_enable=NO anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO # # SECURITY # pam_service_name=vsftpd #userlist_enable=YES #userlist_deny=YES # Default umask for local users is 077. You may wish to change this to 022, # if your users expect that (022 is used by most other ftpd's) local_umask=022 # # MESSAGE ACCUEIL ET MESSAGE.LOG # # Activate directory messages - messages given to remote users when they # go into a certain directory. dirmessage_enable=YES # # Activate logging of uploads/downloads. xferlog_enable=YES # # You may override where the log file goes if you like. The default is shown # below. xferlog_file=/var/log/xferlog.log # # If you want, you can have your log file in standard ftpd xferlog format xferlog_std_format=YES # # 2 log vsftp et xferlog dual_log_enable=YES # # You may fully customise the login banner string: ftpd_banner=Bienvenue sur le serveur ftp de ftp_user (postmaster@domaine.com). # # CONNECTION # max_clients=50 max_per_ip=2 # # Make sure PORT transfer connections originate from port 20 (ftp-data). #connect_from_port_20=YES # # You may change the default value for timing out an idle session. #idle_session_timeout=600 # # You may change the default value for timing out a data connection. #data_connection_timeout=120 # # It is recommended that you define on your system a unique user which the # ftp server can use as a totally isolated and unprivileged user. nopriv_user=ftp_user # # You may specify an explicit list of local users to chroot() to their home # directory. If chroot_local_user is YES, then this list becomes a list of # users to NOT chroot(). #chroot_list_enable=YES # (default follows) #chroot_list_file=/etc/vsftpd/chroot_list chroot_local_user=YES # # You may activate the "-R" option to the builtin ls. This is disabled by # default to avoid remote users being able to cause excessive I/O on large # sites. However, some broken FTP clients such as "ncftp" and "mirror" assume # the presence of the "-R" option, so there is a strong case for enabling it. #ls_recurse_enable=YES # #enable for standalone mode listen=YES #tcp_wrappers=YES # adresses ecoutés #listen_adress = xxx.xxx.xxx.xxx
$ /etc/init.d/vsftpd start
n.b. attention à SElinux pour les utilisateurs de la fedora
multi-utilisateurs
Serveur ftp avec utilisateur virtuels
Merci à la page : http://www.andesi.org/index.php?node=121
- création d'un utilisateur unique qui servira à se connecter au pc
- crétion d'un fichier du nom que vous souhaitez dans /etc/pam.d
- création d'un ficher.txt dans /etc/vsftpd au format
login pass login1 pass1
- transformez ce fichier en base berkeley
yum -y install db4-utils $ db_load -T -t hash -f fichier.txt fichier.db
- changement des droits du fichier
$ chmod 600 /etc/vsftpd/fichier.db
- création du fichier d'authentification pam /etc/pam.d/vsftpd_auth
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/login account required /lib/security/pam_userdb.so db=/etc/vsftpd/login
- création d'un utilisateur qui nous servira d'utilisateur virtuel (attention aux permissions des dossiers utilisés)
par ex: $ groupadd ftp_virt $ useradd -m -d /home/ftp_virt -s /bin/false -c "user virtuel ftp" -g ftp_virt ftp_virt
- création d'un dossier pour chrooter l'utilisateur ftp_virt
$ mkdir /var/run/vsftpd
- création d'un dossier pour définir les permissions de chaque utilisateurs virtuels
$ mkdir /etc/vsftpd/permissions $ vim /etc/vsftpd/permissions/login
#Dossier de l'utilisateur virtuel /home/ftp_virt/login_fld local_root=login_fld #Permissions anon_world_readable_only=NO write_enable=YES anon_upload_enable=YES #creation de dossiers anon_mkdir_write_enable=YES #suppression et renomer anon_other_write_enable=YES
- fichier.conf à réaliser comme ftp.conf
# On désactive les connexions anonymes # et on active les non-anonymes(c'est le cas des utilisateurs virtuels): anonymous_enable=NO local_enable=YES # fichier d'authentification pam pam_service_name=vsftpd_auth # Pour des raisons de sécurité on interdit toute action d'écriture: write_enable=NO anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO # dossier de permission des utilisateurs virtuels user_config_dir=/etc/vsftpd/permissions # 'guest_enable' est très important: cela active les utilisateurs virtuels! # 'guest_username' fait correspondre tous les utilisateurs virtuels à # l'utilisateur 'virtual' que nous avons défini plus haut, et au home # correspondant: '~virtual/'. guest_enable=YES guest_username=ftp_user # On veut que les utilisateurs virtuels restent chez eux: '~ftp_virt/' chroot_local_user=YES # dossier d'emprisonnement de vsftpd secure_chroot_dir=/var/run/vsftpd
- démarrage de vsftpd et test avec la commande ftp serveur port
- chrootage individuel décommenter la ligne user_config_dir=...
créer un dossier dont le chemin sera celui que vous avez indiquez créer des fichiers correspondant aux logins à l'intérieur et annoncer les différents droits anon... mettre pour le chroot la ligne local_root=login
sécurisé SSL
Securisé SSL
http://doc.ubuntu-fr.org/vsftpd
Copyright
Copyright © Richard DUMAIS