Edited 2 weeks ago by ExtremeHow Editorial Team
FTPServerUbuntuLinuxNetworkingConfigurationOperating SystemsSystemSetupFile Transfer
This content is available in 7 different language
File Transfer Protocol (FTP) is a standard network protocol used to transfer files between computers. It is often used to upload files to a server or download files from a server. Setting up an FTP server on Ubuntu can extend file sharing capabilities, provide a secure location for data backups, or provide hosted services for your clients and partners.
FTP servers allow you to easily manage files between different systems on a network. By setting up an FTP server on an Ubuntu machine, you can enable remote access to your files, making it easy to upload and download content from any location.
Before installing FTP server on Ubuntu, make sure you have the following prerequisites:
We can set up an FTP server using various packages. vsftpd (very secure FTP daemon) is recommended due to its simplicity and security features. Let's see the installation process step by step.
To make sure you're accessing the latest package versions, start by updating your system's package index:
sudo apt update
Next, install the vsftpd package by executing the following command:
sudo apt install vsftpd
Confirm the installation by typing `Y` and pressing Enter when prompted.
Once vsftpd is installed, you will need to configure it for your specific needs. The configuration file for vsftpd is located at `/etc/vsftpd.conf`. You can open and edit this file using your favorite text editor. For this tutorial, we will be using nano.
sudo nano /etc/vsftpd.conf
Make sure that local users have the ability to log in. Find the following line and make sure it is uncommented:
local_enable=YES
To allow users to upload files to your FTP server, make sure the following line is not commented out:
write_enable=YES
For security reasons, it is advisable to disable anonymous login. Make sure the following line is uncommented or set to `NO`:
anonymous_enable=NO
To prevent users from accessing files outside their home directory, enable the chroot environment. Remove or add a comment:
chroot_local_user=YES
FTP transmits data in unencrypted form which poses a security risk. To secure your FTP server, you can enable SSL/TLS to encrypt your connection. Follow these steps:
Create a self-signed SSL certificate with the following command:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
During the process, you will be asked for details like country name, state, etc. Fill them according to your knowledge.
Re-open the vsftpd configuration file:
sudo nano /etc/vsftpd.conf
Add or uncomment these lines to enable SSL configuration:
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/private/vsftpd.pem
After making these configurations, restart the vsftpd service to make the changes effective:
sudo systemctl restart vsftpd
You can also check the status of the service to make sure it is active and running:
sudo systemctl status vsftpd
To access the FTP server, you must create new users. Replace username with the preferred username:
sudo adduser username
You will be asked to set a password for the new user and fill in the details.
If you have a firewall enabled, you must allow FTP traffic through port 21. Use the following `ufw` command:
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 990/tcp
sudo ufw allow 40000:50000/tcp
Reload the firewall to apply the new rules:
sudo ufw reload
To make sure your FTP server is working correctly, you can use an FTP client like FileZilla or a command-line FTP tool. Here's how to test using the command line:
ftp localhost
You can also connect to the server using an FTP client on another machine by entering the server's IP address. Make sure you enter the correct username and password.
If you encounter any problems, consider checking the following:
/var/log/vsftpd.log
.Setting up an FTP server on Ubuntu with vsftpd provides a secure way to transfer files. With careful configuration, you can ensure secure access to files while implementing efficient file transfer workflows. Always remember to monitor access logs and maintain current security certificates to keep your data safe.
Continue to explore additional security features to protect your server from vulnerabilities, such as using SFTP (SSH File Transfer Protocol) or updating software regularly.
If you find anything wrong with the article content, you can