The process I have used for installing vsftpd since 12.04 no longer works. I get the error stop: Unknown instance
when restarting the service. I believe this means the configuration is wrong, but I cannot track down the issue. I'm having this problem on a virtual server.
Additionally, running sudo vsftpd
results in 500 OOPS: munmap
as noted by @Beltran.
Acquire root privileges
sudo -s
Install vsftpd and libpam-pwdfile
apt-get install vsftpd libpam-pwdfile
Edit vsftpd.conf
mv /etc/vsftpd.conf /etc/vsftpd.conf.bak vim /etc/vsftpd.conf
Copy and paste the following lines.
allow_writeable_chroot=YES anonymous_enable=NO chroot_list_enable=YES chroot_local_user=YES guest_enable=YES guest_username=vsftpd hide_ids=YES listen=YES local_enable=YES local_umask=022 local_root=/var/clients/$USER nopriv_user=vsftpd pasv_address=127.0.0.1 pasv_enable=YES pasv_min_port=65000 pasv_max_port=65100 port_enable=YES user_sub_token=$USER seccomp_sandbox=NO virtual_use_local_privs=YES write_enable=YES
Register virtual admin
apt-get install apache2-utils mkdir /etc/vsftpd htpasswd -cd /etc/vsftpd/ftpd.passwd admin vim /etc/vsftpd.chroot_list
Add 1 line for the admin user
admin
Configure PAM
mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak vim /etc/pam.d/vsftpd
Copy and paste these 2 lines.
auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd account required pam_permit.so
Create a local user without shell access
useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd
Create root directory and give local user proper access.
mkdir /var/clients chmod -R 755 /var/clients chown -R vsftpd:nogroup /var/clients
Register jailed virtual users (initially, I skip this step)
htpasswd -d /etc/vsftpd/ftpd.passwd {user_name} mkdir /var/clients/{user_name}
Restart service
service vsftpd restart