• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
sharadchhetri

sharadchhetri

Tutorials On Linux, Unix & Open Source

  • Home
  • Linux Commands
  • Resources
    • Learn Linux
  • My WordPress plugins

How to install and configure FTP server in Ubuntu 12.04 LTS

May 20, 2013 by Sharad Chhetri 2 Comments

How to install and configure FTP server in Ubuntu 12.04 LTS

Target Readers: Linux new users or linux system admins
FTP Server IP Address = 10.10.0.25

This post has second part also: Read later if you do not know how anonymous user can login in FTP server. Given below is second part of this post
How to install and configure Secure FTP server in Ubuntu 12.04 LTS

In this tutorial we will learn how to install and configure vsftpd server in Ubuntu 12.04 LTS
In this post we will configure the FTP server for anonymous user only.
In upcoming post I will show some more advanced and secure FTP server configuration.

Note: We will install the vsftpd 3.0 package after downloading it into the system. We are not going to use “apt-get install” method . The reason it has bug related to chroot enable.For reference https://sharadchhetri.com/2013/05/20/500-oops-vsftpd-refusing-to-run-with-writable-root-inside-chroot/

Follow the given below steps

Step 1: login into system and become superuser root

sudo su – or su –

Step2 : Download vsftpd package and install it

tux@ubuntu:~$ sudo su –
[sudo] password for tux:
root@ubuntu:~#
root@ubuntu:~# cd /root/
root@ubuntu:~# wget http://security.ubuntu.com/ubuntu/pool/main/v/vsftpd/vsftpd_3.0.2-1ubuntu2_i386.deb
–2013-05-20 09:36:20– http://security.ubuntu.com/ubuntu/pool/main/v/vsftpd/vsftpd_3.0.2-1ubuntu2_i386.deb
Resolving security.ubuntu.com (security.ubuntu.com)… 91.189.92.190
, 91.189.92.201, 91.189.92.202, …
Connecting to security.ubuntu.com (security.ubuntu.com)|91.189.92.190|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 114714 (112K) [application/x-debian-package]
Saving to: `vsftpd_3.0.2-1ubuntu2_i386.deb’

100%[=========================================================================================>] 114,714 219K/s in 0.5s

2013-05-20 09:36:21 (219 KB/s) – `vsftpd_3.0.2-1ubuntu2_i386.deb’ saved [114714/114714]

root@ubuntu:~#
root@ubuntu:~#
root@ubuntu:~# dpkg -i vsftpd_3.0.2-1ubuntu2_i386.deb

Install dependency of vsftpd

root@ubuntu:~# apt-get install libcap2

Step3 : Take the backup of Original file

#cp -p vsftpd.conf.dpkg-new vsftpd.conf
# cp -p /etc/vsftpd.conf /etc/vsftpd.conf.orig

Step 4 : Now restart the vsftpd service.

# service vsftpd restart

Now you will be able to login into ftp server with user called anonymous .

How to login into ftp server through command line using anonymous user

=> Open a terminal or command line

=> Write the below command.

linux@tuxworld:/tmp$ ftp 10.10.0.25
Connected to 10.10.0.25.
220 (vsFTPd 3.0.2)
Name (10.10.0.25:linux): anonymous
331 Please specify the password.
Password: (Press only enter,password is nothing)
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
226 Directory send OK.
ftp>

How to login through webbrowser using anonymous user

Or , Open the webbrowser like firefox,chrome etc.
In URL type ftp://ipaddress_of_ftp-server OR ftp://FTP-server-domain-name

ftp

NOTE: IN Ubuntu , by default location of ftp directory for anonymous user is /srv/ftp . So you can put files and directory in /srv/ftp directory and through ftp anonymous user can download the stuffs

eg. In below method I created a file in /srv/ftp . You can also place the files and directory in /srv/ftp

root@ubuntu:~# cd /srv/ftp/
root@ubuntu:/srv/ftp# ls
root@ubuntu:/srv/ftp# echo “This is a test file” > testfile
root@ubuntu:/srv/ftp# ls -l
total 4
-rw-r–r– 1 root root 20 May 20 09:56 testfile
root@ubuntu:/srv/ftp#

Now we will access the file via command line and web browser both

In command line for downloading the file you have use get or mget command.
See the below given example

linux@tuxworld:/tmp$ ftp 10.10.0.25
Connected to 10.10.0.25.
220 (vsFTPd 3.0.2)
Name (10.10.0.25:linux): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r–r– 1 0 0 20 May 20 09:56 testfile
226 Directory send OK.
ftp> get testfile
local: testfile remote: testfile
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for testfile (20 bytes).
226 Transfer complete.
20 bytes received in 0.00 secs (29.9 kB/s)
ftp>
ftp> bye
221 Goodbye.
linux@tuxworld:/tmp$ ls -l testfile
-rw-rw-r– 1 linux linux 20 May 21 01:33 testfile
linux@tuxworld:/tmp$ cat testfile
This is a test file
linux@tuxworld:/tmp$

with the help of wget command you can also download the file from ftp server.see the below eg.

linux@tuxworld:/tmp$ wget ftp://10.10.0.25/testfile
–2013-05-21 01:38:35– ftp://10.10.0.25/testfile
=> `testfile’
Connecting to 10.10.0.25:21… connected.
Logging in as anonymous … Logged in!
==> SYST … done. ==> PWD … done.
==> TYPE I … done. ==> CWD not needed.
==> SIZE testfile … 20
==> PASV … done. ==> RETR testfile … done.
Length: 20 (unauthoritative)

100%[========================================================================================>] 20 –.-K/s in 0s

2013-05-21 01:38:35 (2.97 MB/s) – `testfile’ saved [20]

linux@tuxworld:/tmp$ ls testfile
testfile
linux@tuxworld:/tmp$

In browser, in url type ftp://ipaddress-of-ftpserver. It will show the files. By clicking on file you can download it.

ftp2

How to allow anonymous user to upload files or directory

Note: Because of security reason it is recommended to do not allow anonymous user to upload the file. Hence for learning purpose I am writing this section. Reason system admin is like a warrior who is protecting the castle, you can not well protect the castle if you do not know what are its security loopholes.

Rest is if it is require in your network you can allow anonymous user to upload files.

Step 1: eg. Create new directory with any name here we call it as anon in /srv/ftp and change its ownership and group to ftp

root@ubuntu:/srv/ftp# mkdir -p /srv/ftp/anon
root@ubuntu:/srv/ftp# chown ftp:ftp /srv/ftp/anon
root@ubuntu:/srv/ftp# ls -ld /srv/ftp/anon
drwxr-xr-x 2 ftp ftp 4096 May 20 10:30 /srv/ftp/anon
root@ubuntu:/srv/ftp#

Step 2: Enable two parameters in vsftpd.conf file

root@ubuntu:~# vi /etc/vsftpd.conf

write_enable=YES
anon_upload_enable=YES

Step 3: Now restart the vsftpd service

service vsftpd restart

Now we will upload the file using anonymous user in /srv/ftp/anon directory

For uploading the file use put or mput command.
note: put for single file and mput is for multiple files

linux@tuxworld:/tmp$ ftp 10.10.0.25
Connected to 10.10.0.25.
220 (vsFTPd 3.0.2)
Name (10.10.0.25:linux): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x 2 107 114 4096 May 20 10:30 anon
-rw-r–r– 1 0 0 20 May 20 09:56 testfile
226 Directory send OK.
ftp> cd anon
250 Directory successfully changed.
ftp> put upload.txt
local: upload.txt remote: upload.txt
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
21 bytes sent in 0.00 secs (173.8 kB/s)
ftp>

Now check the file in FTP server it will be there.

root@ubuntu:~# ls -l /srv/ftp/anon/
total 4
-rw——- 1 ftp ftp 21 May 20 10:31 upload.txt
root@ubuntu:~#

How to allow anonymous user to create directory in FTP Server

This is also not recommended one but for learning we are writing on this topic as well

Step1: Enable the parameter called anon_mkdir_write_enable=YES in /etc/vsftpd.conf file

vi /etc/vsftpd.conf

anon_mkdir_write_enable=YES

Step2: Restart the vsftpd service

service vsftpd restart

Now we will try creating directory from remote client
Note: We can here only able to create directory inside anon directory only.

linux@tuxworld:/tmp$ ftp 10.10.0.25
Connected to 10.10.0.25.
220 (vsFTPd 3.0.2)
Name (10.10.0.25:linux): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x 2 107 114 4096 May 20 10:31 anon
-rw-r–r– 1 0 0 20 May 20 09:56 testfile
226 Directory send OK.
ftp> mkdir wiki
550 Create directory operation failed.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x 2 107 114 4096 May 20 10:31 anon
-rw-r–r– 1 0 0 20 May 20 09:56 testfile
226 Directory send OK.
ftp> cd anon
250 Directory successfully changed.
ftp> mkdir linux
257 “/anon/linux” created
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwx—— 2 107 114 4096 May 20 10:47 linux
-rw——- 1 107 114 21 May 20 10:31 upload.txt
226 Directory send OK.
ftp>

Desktop FTP clients

You can also access the FTP server through desktop client. These clients are free and opensource
(1) filezilla (Windows,Linux and MAC) https://filezilla-project.org/download.php
(2) fireftp (firefox plugin)    https://addons.mozilla.org/en-US/firefox/addon/fireftp/
(3) cyberduck (MAC and Windows)  http://cyberduck.ch/

For login with system user and disabling anonymous user,read the given below post

How to install and configure Secure FTP server in Ubuntu 12.04 LTS

Share this:

  • Twitter
  • Facebook
  • More
  • Print
  • Email
  • LinkedIn
  • Reddit
  • Tumblr
  • Pinterest
  • Pocket
  • Telegram
  • WhatsApp
  • Mastodon

Related posts:

  1. How to install and configure Secure FTP server in Ubuntu 12.04 LTS
  2. How to install and configure FTP server with chroot in Ubuntu 12.04 LTS
  3. How to configure FTP server in CentOS 6.3 – vsftpd server
  4. Error: Unable to get ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-9.0-release/Latest/
  5. How to install and configure samba server in CentOS 6.3
  6. Install and configure rsyslog Centralized logging server in CentOS 6.5
  7. Install and configure nagios core 4 on Ubuntu 12.04 LTS
  8. Install and configure elasticsearch cluster on Ubuntu 14.04 LTS
  9. How to configure vsftpd server with virtual user mysql authentication in CentOS 6
  10. Install and configure transparent squid proxy server : RHEL/CentOS 6.x

Filed Under: FTP Server, Linux, Server

Reader Interactions

Comments

  1. Steve says

    September 27, 2013 at 3:40 am

    Which package should I download for use on x64 Intel architecture?

    Reply
    • sharad chhetri says

      September 27, 2013 at 3:13 pm

      always select latest package. For 64 bit Ubuntu,it will work http://security.ubuntu.com/ubuntu/pool/main/v/vsftpd/vsftpd_3.0.2-1ubuntu2_amd64.deb

      Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Primary Sidebar

Our Social Media Presence

  • Facebook
  • GitHub
  • Twitter

Linux Command

What is Linux Internal And External Command

Linux Basic Commands With Examples For Every Beginner

tr command to convert lines to space , tab and vertical tab

smbpasswd command not found on CentOS 7 and RHEL 7

Solution : semanage command not found

Unix / Linux : How to print duplicate lines from file

More Posts from this Category

You Might Like These Articles!

simplecodesyntax wordpress plugin

SimpleCodeSyntax : My Another WordPress Plugin

Install Nginx

How To Install Nginx On Ubuntu 22.04 LTS

Install Latest Git package in Ubuntu Operating System

How To Always Install Latest Git Package In Ubuntu Operating System

Bash script for installing VirtualBox on Ubuntu 22.04 LTS Desktop

Install VirtualBox On Ubuntu 22.04 LTS Desktop (Bash Script)

libfuse

dlopen(): error loading libfuse.so.2 – Got Error On Ubuntu

Failed to open/create the internal network

VirtualBox Error: Failed to open/create the internal network

Always Useful Tips And Tricks

How to install pam_mysql in CentOS or Red Hat

How to change hostname in Ubuntu 12.04 and 12.10 without system restart

convert space into new line using sed command

How to create a file with cat command

How to see system load average in terminal with graphical representation

sed: -e expression #1, char 24: Invalid range end

Show visitor ip address php code

Explore 90+ Article On "Linux Tips And Tricks"

Copyright © 2023 ·
The material in this site cannot be republished either online or offline, without our permission.
Proudly Blogging From Bharat.

  • Contact
  • About Me
  • My WordPress plugins
  • Privacy Policy