Ubuntu Linux vsftpd ftp service / server install, configuration howto
Q. How do I install Ubuntu ftp service or server?
A. Ubuntu Linux comes with various ftp servers to setup FTP service such as:
=> proftpd - Versatile, virtual-hosting FTP daemon
=> vsftpd - The Very Secure FTP Daemon
=> ftpd - FTP server
=> wu-ftpd - powerful and widely used FTP server
=> wzdftpd - A portable, modular, small and efficient ftp server
=> pure-ftpd - Pure-FTPd FTP server
I recommend using vsftpd. It is simple and quite secure FTP server. According to vsftpd man page:
vsftpd is the Very Secure File Transfer Protocol Daemon. The server can be launched via a super-server such as inetd or xinetd. Alternatively, vsftpd can be launched in standalone mode, in which case vsftpd itself will listen on the network.
=> Default ftp port : 21
=> Default configuration file : /etc/vsftpd.conf
How do I set up the vsftpd daemon to accept connections from another computer?
The configuration of the vsftpd FTP service (read as daemon ) simply requires three steps.
Step # 1: Install vsftpd
Type apt-get command to install vsftpd
$ sudo apt-get install vsftpd
Output:
Password: Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: vsftpd 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 121kB of archives. After unpacking 438kB of additional disk space will be used. Get:1 http://us.archive.ubuntu.com edgy/main vsftpd 2.0.4-0ubuntu5 [121kB] Fetched 121kB in 0s (246kB/s) Selecting previously deselected package vsftpd. (Reading database ... 31396 files and directories currently installed.) Unpacking vsftpd (from .../vsftpd_2.0.4-0ubuntu5_amd64.deb) ... Setting up vsftpd (2.0.4-0ubuntu5) ... Adding system user `ftp' with uid 106... Adding new user `ftp' (106) with group `nogroup'. Not creating home directory `/home/ftp'. * Starting FTP server: vsftpd
Step # 2: Configure /etc/vsftpd.conf
The default vsftpd configuration file is /etc/vsftpd.conf. You need to edit this file using text editor such as vi:
$ sudo vi /etc/vsftpd.conf
Add the following line (uncomment line) to the vsftpd configuration file:
local_enable=YES
Above config directive will allow local users to log in via ftp
If you would like to allow users to upload file, add the following to the file:
write_enable=YES
For security you may restrict local users to their home directories. Add the following to the file:
chroot_local_user=YES
Save and close the file.
Step # 3: Restart vsftpd
To restart vsftpd type the command :
$ sudo /etc/init.d/vsftpd restart
Output:
* Stopping FTP server: vsftpd [ ok ] * Starting FTP server: vsftpd [ ok ]
How do I use ftp command line utility?
Now you should be able to FTP to this server with any account that exists on the system except for the root user. From Windows or other Linux system use ftp client, type the command:
$ ftp ftp.nixcraft.in
Output:
Connected to ftp.nixcraft.in. 220 (vsFTPd 2.0.4) Name (ftp.nixcraft.in:vivek): vivek 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> pwd 257 "/" ftp> ls 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. -rw-r--r-- 1 1000 1000 91798 Aug 16 08:26 apf-current.tar.gz -rwxr-xr-x 1 1000 1000 156 Nov 10 07:05 iptables.stop drwxr-xr-x 3 0 0 4096 Dec 23 11:11 postfix -rw-r--r-- 1 0 0 10481942 Nov 29 23:35 webmin_1.310_all.deb 226 Directory send OK. ftp> quit 221 Goodbye.
Open FTP port using iptables (optional)
Add following rules to your iptables script. Assuming that default incoming policy is drop. If protocol is TCP and destination port is 21 (ftp):
iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
See - How do I open open ftp port 21 using iptables for more information.
There are a large number of other configuration options available for vsftpd that can be used to fine tune ftp server. Read vsftpd.conf man page by typing following command:
$ man vsftpd.conf
Subscribe to our free e-mail newsletter or RSS feed to get all updates.
You can Email this page to a friend.
Related Other Helpful FAQs:
- Change vsftpd ftp server port 21
- How to Change the vsftp or vsftpd server banner message
- CentOS / Red Hat Linux Install VSFTPD FTP Server
- VSFTPD limit the number of simultaneous vsftpd connections for a single IP address
- FTP Connection refused error - Solution to problem
Discussion on This FAQ
Leave a Reply
We encourage your comments, and suggestions. But please stay on topic, be polite, and avoid spam. Thank you very much for stopping by our site!
Tags: apt-get_command, ftp server, ftp_command, vsftpd ubuntu linux



January 26th, 2007 at 4:38 am
i want to use root to login my ftpserver. can you teach me how to setup it?
February 12th, 2007 at 10:48 am
hi
after logging to the username, i am able to do get command (able to
download the files) but i am not able to upload the files. message
received
ftp> put vish
227 Entering passive mode (127,0,0,1,188,16)
553 Could not create file.
pls help me
vishal parikh
February 13th, 2007 at 2:30 am
The default setup for vsftpd makes the /home/ftp directory for ftp server use. I had been using vsftpd on fedora where this directory was /var/ftp/. In my new ubuntu installation I had kept /var partition large to accomodate ftp site files.
How do I change the default behaviour in ubuntu to make /var/ftp as the default ftp home in place of /home/ftp??
anand
May 22nd, 2007 at 9:42 am
If the user conect with ftp, he should be login in his home dir only.
how to set this home dir option.(no permisson view other dir)
May 22nd, 2007 at 11:01 am
Mohan,
Use vsftpd chroot feature
November 13th, 2007 at 10:27 am
hi
i want to anynom users can visit /myftp folder and download some files.
then i want to users lik u1,u2,u3 can login to ftp
and can upload,change files in /myftp sub folders.
u1 should have access to /myftp/folder1
u2 should have access to /myftp/folder1 and /myftp/folder2
u3 should have access to /myftp/ all folders
anonym should not access to /myftp/folder3 !
is it possible?
i’m using FC6 with vsftpd2.0.5
HEPL PLZ!
November 22nd, 2007 at 11:44 am
i want to login in root in local desktop through http://ftp…….PLz. help…
March 27th, 2008 at 1:25 am
Great short step-by-step instructions for getting an FTP server running under Ubuntu. So easy to follow! Thank you.
May 22nd, 2008 at 4:17 pm
vishal: you need to edit the /etc/vsftpd.conf file and uncomment write_enable=YES
June 15th, 2008 (4 weeks ago) at 6:29 pm
Hello!,
Thanks for this great tutorial. I just followed your instructions and now it is nicely running
I installed it on Ubuntu 8.0.4
Thanks again!!!