Testing the FTP Server in Linux
We will create a regular PDF file (in this case, the PDF version of the vsftpd.conf manpage) in /storage/ftp.
Note that you may need to install the ghostcript package (which provides ps2pdf) separately, or use another file of your choice:
# man -t vsftpd.conf | ps2pdf - /storage/ftp/vstpd.conf.pdf
To test, we will use both a web browser (by going to ftp://Your_IP_here
) and using the command line client (ftp). Let’s see what happens when we enter that FTP address in our browser:
As you can see, the PDF file we saved earlier in /storage/ftp
is available for you to download.
On the command line, type:
# ftp localhost
And enter anonymous as the user name. You should not be prompted for your password:
To retrieve files using the command line, use the get
command followed by the filename, like so:
# get vsftpd.conf.pdf
and you’re good to go.
Summary
In this guide we have explained how to properly set up a FTP and use it to allow anonymous logins. You can also follow the instructions given to disable such logins and only allow local users to authenticate using their system credentials (not illustrated in this article since it is not required on the exam).
If you run into any issues, please share with us the output of the following command, which will stripe the configuration file from commented and empty lines, and we will be more than glad to take a look:
# grep -Eiv '(^$|^#)' /etc/vsftpd/vsftpd.conf
Mine is as below (note that there are other configuration directives that we did not cover in this article as they are set by default, so no change was required at our side):
local_enable=NO write_enable=NO local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES ftpd_banner=This is a test FTP server brought to you by Tecmint.com listen=YES listen_ipv6=NO pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES anon_max_rate=10240 local_max_rate=20480 max_per_ip=5 anon_root=/storage/ftp no_anon_password=YES allow_writeable_chroot=YES pasv_enable=YES pasv_min_port=15000 pasv_max_port=15500
Particularly, this directive
xferlog_enable=YES
will enable the transfer log in /var/log/xferlog
. Make sure you look in that file while troubleshooting.
Additionally, feel free to drop us a note using the comment form below if you have questions or any comments about this article.
Hi, is FTP still part of the LFCS in 2020? Can’t see it in the Service Configuration exam topics.
Anyway, great article.
@Stilian,
The chapter FTP is not a part LFCS exam, but included as bonus in the book…
Hello, Just concerned a little if configuring NFS, FTP and DNS servers are going to be a part of the exam. Please confirm so that I would start re-doing or practicing the methods thoroughly.
@Imrank,
Please follow the chapters in the Book, and yes all Network services like NFS, FTP and DNS are part of exam..
Hi Gabriel,
first of all thank you for such a comprehensive manuals – they are just great.
I think I found a little typo:
pasv_max_port=15000
pasv_min_port=15500
It should be in reversed order – max 15500 and min 15000.
Good catch!
@Ravi, please correct the typo.
@Gabriel,
Corrected in the writeup as suggested by @Piotr.
Hi,
Thanks a lot for nice article
i think “#” does not need on page 4
# get vsftpd.conf.pdf
@Jalal,
The pound sign, as used here, is a write-up convention to indicate that’s a command that should be typed in the terminal.
If you mean this specific command does not need to be run as root, you’re right.
@Ravi
Please confirm.
@Jalal,
Like @Gabriel, said the signs are used for command indication only and you’re absolutely right, the pound sign is not necessary to have when using with ftp commands.
What I understand from Jalal’s comment, is that the get command is written inside the ftp console, so the pound sign cannot be there. Instead it should be “ftp> get vsftpd.conf.pdf”.
Correct me if I’m mistaken.
I believe you’re right. Having the pound sign there may lead to confusion, as it is not actually a Linux command but a FTP one. Perhaps a clarification at the proper place in this article should do the trick.
Good stuff Mr. Gabriel. Thank you
@Alex,
Thank you for taking the time to comment. I’m glad you found this useful.