How to Configure FTP Access on CentOS 8
An FTP server is useful for managing websites and sharing files. In this tutorial, we will configure FTP access on CentOS 8 using vsftpd.
Installing and configuring the FTP server
Let’s install the vsftpd package.
Now start the service.
And add it to autorun.
Open the /etc/vsftpd/vsftpd.conf file.
Check these parameters to make sure they have the correct values. We currently prohibit anonymous login and allow it for local users. FTP recording is also allowed.
local_enable=YES
write_enable=YES
Find and uncomment this line to restrict access to everything except the home directory.
And add this line to the end of the file to grant access to change and write files via FTP.
Now save and close the file and open /etc/pam.d/vsftpd. Comment this line in it:
If you use firewalld add the FTP service to it.
firewall-cmd --reload
Restart the FTP service.
Creating a user for FTP access
Create a new user and set the password for it.
passwd newftpuser
To prevent it from logging in via ssh, change its shell.
Using SSL/TLS for secure FTP
You can use SSL/TLS to encrypt your connection. For this purpose, you can use Let's Encrypt or a self-signed SSL certificate.
In the the /etc/vsftpd/vsftpd.conf file add the paths to the keys and enable ssl_enable option.
rsa_private_key_file=/etc/letsencrypt/live/domain_name/privkey.pem
ssl_enable=YES
And restart the service.