Tutorial guide for setting up an FTP server with vsftp
1. Download the source code to the server, which is ftp://vsftpd.beasts.org/users/cevans/. the previous example is vsftpd-2.0.5.tar.gz. We strongly recommend that you use the source code for installation to get rid of the confusions similar to RPM package dependencies and work freely in different UNIX/Linux environments.
2. Unzip and install:
Tar zxvf vsftpd-2.0.5.tar.gz; CD vsftp-2.0.5; Make; make install
3. Add ftp users. If there are not many users, simply use the system users. Useradd-D/home/sery; passwd ******.
4. Copy the configuration file. Here there are two:
CP vsftpd. CONF/etc/vsftpd. conf
CP RedHat/vsftpd. PAM/etc/PAM. d/ftp
If you do not copy the vsftpd. Pam file, the FTP user cannot log on. This file is also available in Debian.
5. modify the configuration file/etc/vsftpd. conf. This configuration file is the key to vsftpd. Modify the following values to implement different functions: String 2
(1) modified part:
Set
Local_enable = Yes
Write_enable = Yes
Local_umask = 022
The preceding comment is canceled.
(2) added:
Listen = Yes (FTP acts as an independent Daemon)
Chroot_local_user = Yes (the user is located in his/her home directory and cannot switch to the root directory using CD)
Cmds_allowed = Abor, CWD, list, MDTM, MKD, NLST, pass, PASV,
Port, PWD, quit, RETR, RMD, RNFR, RNTO, site, size, STOR, type, user,
Acct, APPE, cdup, help, mode, Noop, rein, stat, STOU, stru, and syst (only files and directories can be uploaded, but cannot be deleted. Note: these must be written in one row)
6. Start the FTP service:
Vsftpd &
Note: The configuration file vsftpd. conf cannot be blank before each line. It must be written in the top level; otherwise, the operation fails.
Pam_service_name = vsftpd
The pam_service_name configuration statement is very tricky In Debian and requires an absolute path. This absolute path is usually/etc/PAM. d/vsftpd. If a local user who can access FTP legally cannot log on to FTP and cannot perform authentication, it is probably the absolute path of Pam.
Vsftpd. conf:
# Example config file/etc/vsftpd. conf
#
# The default compiled in settings are fairly paranoid. This sample file
# Loosens things up a bit, to make the FTP daemon more usable.
# Please see vsftpd. CONF.5 for all compiled in defaults.
#
# Read this: this example file is not an exhaustive list of vsftpd options.
# Please read the vsftpd. CONF.5 manual page to get a full idea of vsftpd's
# Capabilities.
#
# Allow Anonymous FTP? (Beware-allowed by default if you comment this out ).
Anonymous_enable = Yes
#
# Uncomment this to allow local users to log in.
Local_enable = Yes
#
# Uncomment this to enable any form of FTP write command.
Write_enable = Yes
#
# Default umask for local users is 077. You may wish to change this to 022,
# If your users CT that (022 is used by most other ftpd's)
Local_umask = 022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# Has an effect if the above global write enable is activated. Also, you will
# Obviously need to create a Directory Writable By the FTP user.
# Anon_upload_enable = Yes
#
# Uncomment this if you want the anonymous FTP user to be able to create
# New directories.
# Anon_mkdir_write_enable = Yes
#
# Activate directory messages-messages given to remote users when they
# Go into a certain directory.
Dirmessage_enable = Yes
#
# Activate logging of uploads/downloads.
Xferlog_enable = Yes
#
# Make sure port transfer connections originate from Port 20 (ftp-data ).
Connect_from_port_20 = Yes
#
# If you want, you can arrange for uploaded anonymous files to be owned
# A different user. Note! Using "root" for uploaded files is not
# Recommended!
# Chown_uploads = Yes
# Chown_username = whoever
#
# You may override where the log file goes if you like. The default is shown
# Below.
# Xferlog_file =/var/log/vsftpd. Log
#
# If you want, you can have your log file in standard ftpd xferlog format
# Xferlog_std_format = Yes
#
# You may change the default value for timing out an idle session.
# Idle_session_timeout = 600
#
# You may change the default value for timing out a data connection.
# Data_connection_timeout = 120
#
# It is recommended that you define on your system a unique user which
# Ftp server can use as a totally isolated and unprivileged user.
# Nopriv_user = ft1_cure
#
# Enable this and the server will recognize asynchronous Abor requests. Not
# Recommended for Security (the code is non-trivial). Not enabling it,
# However, may confuse older FTP clients.
# Async_abor_enable = Yes
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# The request. Turn on the below options to have the server actually do ASCII
# Mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a Denial of Service
# Attack (DOS) via the command "size/big/file" in ASCII mode. vsftpd
# Predicted this attack and has always been safe, reporting the size of
# Raw file.
# ASCII mangling is a horrible feature of the Protocol.
# Ascii_upload_enable = Yes
# Ascii_download_enable = Yes
#
# You may fully customise the login banner string:
# Ftpd_banner = welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# Useful for combatting certain DoS attacks.
# Deny_email_enable = Yes
# (Default follows)
# Banned_email_file =/etc/vsftpd. banned_emails
#
# You may specify an explicit list of local users to chroot () to their home
# Directory. If chroot_local_user is yes, then this list becomes a list
# Users to not chroot ().
# Chroot_list_enable = Yes
# (Default follows)
# Chroot_list_file =/etc/vsftpd. chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled
# Default to avoid remote users being able to cause excessive I/O on large
# Sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# The presence of the "-R" option, so there is a strong case for enabling it.
# Ls_recurse_enable = Yes
Listen = Yes
Chroot_local_user = Yes
Cmds_allowed = Abor, CWD, list, MDTM, MKD, NLST, pass, PASV, port, PWD, quit, RETR, RMD, RNFR, RNTO, site, size, STOR, type, user, ACCT, APPE, cdup, help, mode, Noop, rein, stat, STOU, stru, syst