The File Transfer Protocol (FTP) provides users with a simple way to transfer files to and from an FTP server. FreeBSD includes FTP server software, ftpd, in the base system.
FreeBSD provides several configuration files for controlling access to the FTP server. This section summarizes these files. Refer to ftpd(8) for more details about the built-in FTP server.
The most important configuration step is deciding which
	accounts will be allowed access to the FTP
	server.  A FreeBSD system has a number of system accounts which
	should not be allowed FTP access.  The list
	of users disallowed any FTP access can be
	found in /etc/ftpusers.  By default, it
	includes system accounts.  Additional users that should not be
	allowed access to FTP can be added.
In some cases it may be desirable to restrict the access
	of some users without preventing them completely from using
	FTP.  This can be accomplished be creating
	/etc/ftpchroot as described in
	ftpchroot(5).  This file lists users and groups subject
	to FTP access restrictions.
To enable anonymous FTP access to the
	server, create a user named ftp on the FreeBSD system.  Users
	will then be able to log on to the
	FTP server with a username of
	ftp or anonymous.  When prompted for
	the password, any input will be accepted, but by convention,
	an email address should be used as the password.  The
	FTP server will call chroot(2) when an
	anonymous user logs in, to restrict access to only the home
	directory of the ftp user.
There are two text files that can be created to specify
	welcome messages to be displayed to FTP
	clients.  The contents of
	/etc/ftpwelcome will be displayed to
	users before they reach the login prompt.  After a successful
	login, the contents of
	/etc/ftpmotd will be displayed.  Note
	that the path to this file is relative to the login
	environment, so the contents of
	~ftp/etc/ftpmotd would be displayed for
	anonymous users.
Once the FTP server has been
	configured, set the appropriate variable in
	/etc/rc.conf to start the service during
	boot:
ftpd_enable="YES"
To start the service now:
#service ftpd start
Test the connection to the FTP server by typing:
%ftp localhost
The ftpd daemon uses
	syslog(3) to log messages.  By default, the system log
	daemon will write messages related to FTP
	in /var/log/xferlog.  The location of
	the FTP log can be modified by changing the
	following line in
	/etc/syslog.conf:
ftp.info /var/log/xferlog
Be aware of the potential problems involved with running an anonymous FTP server. In particular, think twice about allowing anonymous users to upload files. It may turn out that the FTP site becomes a forum for the trade of unlicensed commercial software or worse. If anonymous FTP uploads are required, then verify the permissions so that these files cannot be read by other anonymous users until they have been reviewed by an administrator.
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
    documentation may be
    sent to <freebsd-questions@FreeBSD.org>.
    Send questions about this document to <freebsd-doc@FreeBSD.org>.