CentOS / Red Hat Linux Install VSFTPD FTP Server

Posted on in Categories , , , , last updated May 12, 2008

Q. How do I configure and install an FTP server in CentOS / RHEL 5 / Fedora Linux server?

A. CentOS / RHEL server comes with vsftpd which is the Very Secure File Transfer Protocol (FTP) daemon. The server can be launched via a xinetd or as standalone mode, in which case vsftpd itself will listen on the network port 21.

How do I install vsftpd?

Simply type the following command as a superuser (root):
# yum install vsftpd

WARNING! These examples open your computer to insecure ftp protocol. If possible use SFTP ftp secure sever which is inbuilt into OpenSSH SSHD server.

Turn on vsftpd ftp service

Type the following command:
# chkconfig vsftpd on

How do I start vsftpd ftp server?

Type the following command:
# service vsftpd start

How do I stop vsftpd ftp server?

Type the following command:
# service vsftpd stop

How do I restart vsftpd ftp server?

Type the following command:
# service vsftpd restart

Open FTP port

Open /etc/sysconfig/iptables file, enter:
# vi /etc/sysconfig/iptables
Append following line to open ftp port 21 before REJECT line:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
Save and close the file. Restart the firewall:
# service iptables start

Test ftp server

Type the following command:
$ ftp localhost
$ ftp ftp.server.com
$ ftp 202.54.1.1

How do I configure vsftpd server?

The default configuration file is /etc/vsftpd/vsftpd.conf file. You can open file with vi text editor:
# vi /etc/vsftpd/vsftpd.conf
See see vsftpd.conf man pages for all configuration options.
$ man vsftpd.conf

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

16 comment

    1. # service iptables stop
      # chkconfig iptables off
      # yum install vsftpd* -y
      # vim /etc/vsftpd/vsftpd.conf
      remove a # from this line (chroot_local_user=YES)
      add the line in last end.. (userlist_deny=NO)
      # vim /etc/vsftpd/user_list
      add the user for ftp access
      # setsebool -P allow_ftpd_full_access on
      # service vsftpd restart
      # chkconfig vsftpd on

  1. I had to add this to my /etc/vsftpd/vsftpd.conf:

    pasv_min_port=12000
    pasv_max_port=12003

    And the firewall exception:

    -A RH-Firewall-1-INPUT -p tcp -m tcp -m state –dport 12000:12003 –state NEW -j ACCEPT

    But it all works now :)

  2. Great article. It contains everything i needed. While other locations contained some important information, the information that really saved me was the allowing of port 21 through the firewall, since most OS don’t have it as a default.

  3. Awesome, worked perfectly on my new Centos server through Godaddy… FTP was already installed so all I needed to do was ‘start’ the server and boom I opened FileZilla and it immediately connected.

    Thank you for this resource

Leave a Comment