Install ProFTPD & MySQL module (on CentOS):
yum install proftpd proftpd-mysql
chkconfig proftpd on
On Ubuntu:
sudo apt-get install proftpd-basic proftpd-mod-mysql
sudo update-rc.d proftpd defaults
Configure the /etc/proftpd.conf file with proftpd.conf.alt1.txt.
Via the FTP client:
Status:Connection established, waiting for welcome message... Response:220 ProFTPD 1.3.3g Server (sitename.com) [::ffff:1.0.0.254] Command:USER admin Response:331 Password required for admin Command:PASS ************ >Response:530 Login incorrect. Error:Could not connect to server
Check your proftpd.log file for clues.
tail /var/log/proftpd/proftpd.log
If you see errors similar to this:
Dec 01 06:49:33 cdn.sitename.com proftpd[19226] cdn.sitename.com (redlorry919.plus.com[::ffff:1.0.0.254]): FTP session opened. Dec 01 06:49:33 cdn.sitename.com proftpd[19226] cdn.sitename.com (redlorry919.plus.com[::ffff:1.0.0.254]): error creating '/ftp_accs/admin': Permission denied Dec 01 06:49:33 cdn.sitename.com proftpd[19226] cdn.sitename.com (redlorry919.plus.com[::ffff:1.0.0.2549]): notice: unable to use '~/' [resolved to '/ftp_accs/admin/']: No such file or directory
Make sure you do not have SELinux running. You can disable it until the next reboot by calling this:
setenforce 0If you're having connection or firewall issues, see here:
https://support.mfscripts.com/public/kb_view/43/More info: http://www.electrictoolbox.com/switch-off-selinux-...
nano /etc/hostsError:
[ ok ] Stopping ftp server: proftpd.In proftpd.conf ensure this is set:
[....] Starting ftp server: proftpdmail proftpd[1534]: Fatal: Group: Unknown group 'nobody' on line 20 of '/etc/proftpd/proftpd.conf'
# Set the user and group that the server runs as
User nobody
Group nogroup
Depending on your ProFTPD setup you may find the setup detailed in the FTP plugin settings does not fully function. Try replacing the contents of your /etc/proftpd.conf file with the attached proftpd.conf.alt1.txt. Ensure you replace all the values in square brackets so it can connect to your database. This is a standalone config file so there's no need for sql.conf and modules.conf.
There is a restriction in config for yum on DirectAdmin servers that blocks packages with 'ftp' or 'mysql' in the name. You can fix this by editing the yum.conf file:
nano /etc/yum.conf
Remove *ftp* & mysql* on this line:
exclude=apache* httpd* mod_* mysql* MySQL* mariadb* da_* *ftp* exim* sendmail* php* bind-chroot*
Example:
exclude=apache* httpd* mod_* MySQL* mariadb* da_* exim* sendmail* php* bind-chroot*
Try the install again using epel:
yum --enablerepo=epel install proftpd proftpd-mysql
If you need to install the epelrepo see here - https://www.tecmint.com/how-to-enable-epel-repository-for-rhel-centos-6-5/
You see the following error in the proftpd logs: (assume ftp_accs is the folder you've created for the FTP accounts)
notice: unable to use DefaultRoot '~/' [resolved to '/home/domains/website.com/public_html/ftp_accs/admin/']: Permission denied
It's likely the path /home/domains/website.com/public_html/ftp_accs/ has user access restrictions on your server. Move /ftp_accs/ into your server root or other location which doesn't cause the error.
Ensure you truncate the following database tables to remove the failed FTP user:
- plugin_ftp_account
- plugin_ftp_proftpd_user
This is liklely a firewall issue. In /etc/proftpd/proftpd.conf after DefaultRoot, add:
PassivePorts 30000 50000
Restart proftFTPd
service proftpd restartUsing iptables enable the ports on your firewall:
iptables -A INPUT -p tcp --dport 30000:50000 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables-save
or
apt-get install iptables-persistent
iptables -A INPUT -p tcp --dport 30000:50000 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables-save > /etc/iptables/rules.v4
Try enabling the passive ports as detailed above.
Useful Commands
Restart ProFTPD:
service proftpd restart
Install ProFTPD & MySQL module:
yum install proftpd proftpd-mysql
Start in debug mode: (stop the proftpd service first)
proftpd -n -d 20SQL Log File:
/var/log/proftpd/sql.logIf you can login fine when ProFTPD is started in debug mode but not normally, look in the SQL Log File. If you have an error like this:
'Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)'This is because selinux is blocking it.
fuser -k 21/tcp