Installing
yum install vsftpd chkconfig vsftpd on
Configuring /etc/vsftpd/vsftpd.conf
You should edit your /etc/vsftpd/vsftpd.conf file similar to the following:
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES # the below lines may need to be manually added pasv_min_port=60000 pasv_max_port=65000
Chrooting User
If you would like to chroot the users you can add the following line to the bottom of /etc/vsftpd/vsftpd.conf
#for chrooting users add the following lines:
chroot_local_user=NO chroot_list_enable=NO chroot_list_file=/etc/vsftpd/vsftpd.chroot_listThe line: chroot_local_user=YES will chroot users in their home directory You will then need to create the following file /etc/vsftpd/vsftpd.chroot_list even if you leave it empty. If you change chroot_list_enable to yes then you will need to put users in vsftpd.chroot_list that you wish NOT to be chrooted as everyone will be by default.
Note: you will need to create the file even if you leave it empty
/etc/vsftpd/vsftpd.chroot_listOnce you have done this you should start vsftpd with:
service vsftpd start
Firewall Rules:
iptables -I INPUT -p tcp --dport 21 -m comment --comment "FTP" -j ACCEPT iptables -I INPUT -p tcp -m multiport --dports 60000:65000 -m comment --comment "FTP passive mode ports" -j ACCEPT
/etc/init.d/iptables saveYou should then edit /etc/sysconfig/iptables-sysconfig and make sure the following lines look like:
IPTABLES_MODULES="nf_conntrack_ftp"
Adding and modifying Users
useradd -m -s /sbin/nologin username will create a user without the access to ssh into the server which is more secure if the user is only being used for FTP (they will still be able to user FTP + vsFTPd, NOT sFTP)
useradd –d /home/directory/ username this adds a user with a specific home directory. This is good for chrooting a user to a specific directory.
Adding a new user straight into a group useradd -G {group-name} username
Alternivately you are able to use the following command to add a new user straight into a group you have created with a home directory of /var/www/html and NO shell login (only useable as FTP user)
useradd -G groupname -home /var/www/testftp/ -m -s /sbin/nologin newusernameDon’t forget to set the password for the user with:
passwd usernameyou will then be prompted to change the password for the user