1、安装
$sudo apt-get install vsftpd
启动vsftpd:sudo/etc/init.d/vsftpd start 或者sudo service vsftpd start
停止vsftpd:sudo/etc/init.d/vsftpd stop 或者sudo service vsftpd stop
重启vsftpd:sudo/etc/init.d/vsftpd restar 或者sudo service vsftpd restart
2、设置vsftpd.conf文件(查找对应项,去掉注释#,或更改成自定义值)
备份vsftpd.conf文件
$sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.old
<style type="text/css"> <!-- @page {margin:2cm} p {margin-bottom:0.21cm} --> </style>
vsftp.conf文件的介绍:
#开启监听网络
listen=YES
#listen_ipv6=YES
# 允许匿名登入:<style type="text/css"> <!-- @page {margin:2cm} p {margin-bottom:0.21cm} --> </style>
#若设置为YES,则允许匿名用户访问;若设置为NO则拒绝匿名用户访问。
#如果开启的话,则可以通过用户名ftp或者anonymous来访问,密码随便。
anonymous_enable=yes
# 允许本地用户登入:
#若设置为YES,则允许通过本地用户帐号访问;若设置为NO,则拒绝本地用户帐号访问。
local_enable=YES
# 允许本地用户修改和删除:
<style type="text/css"> <!-- @page {margin:2cm} p {margin-bottom:0.21cm} --> </style>
#若设置为YES,则开启FTP全局的写权限;若设置为NO,则不开。
#若为NO则所有FTP用户都无法写入,包括无法新建、修改、删除文件、目录等操作,也就是说用户都没办法上传文件!!
# FTP上传文件权限,默认#是077
#local_umask=022
# 允许匿名用户上传:
<style type="text/css"> <!-- @page {margin:2cm} p {margin-bottom:0.21cm} --> </style>
#若设置为YES,开启匿名用户的上传权限。前提是write_enable有开启,
#并且用户具有对当前目录的可写权限。若设置为NO,则关闭匿名用户的上传权限。
anon_upload_enable=YES# 允许匿名用户的写和创建目录的权限:
<style type="text/css"> <!-- @page {margin:2cm} p {margin-bottom:0.21cm} --> </style>
#若设置为YES,开启匿名用户新建目录的权限。前提是write_enable有开启,
#并且用户具有对当前目录的可写权限。若设置为NO,则关闭匿名用户新建目录的权限。
anon_mkdir_write_enable=YES#当切换目录时,显示该目录下message隐藏文件的内容:
<style type="text/css"> <!-- @page {margin:2cm} p {margin-bottom:0.21cm} --> </style>
#若设置为YES,则可开启目录信息推送,也就是用户登录FTP后可以列出当前目录底下的文件、目录。
dirmessage_enable=YES
# 激活上传和下载的日志:
<style type="text/css"> <!-- @page {margin:2cm} p {margin-bottom:0.21cm} --> </style>
#若设置为YES,则开启登录、上传、下载等事件的日志功能。
xferlog_enable=YES# 启动FTP数据端口的连接请求:
<style type="text/css"> <!-- @page {margin:2cm} p {margin-bottom:0.21cm} --> </style>
#若设置为YES,则服务器的端口设为20。
#如果不想用端口20,可以另外通过ftp_data_port来指定端口号。
#更改上传文件的所有属性<style type="text/css"> <!-- @page {margin:2cm} p {margin-bottom:0.21cm} --> </style>
#若设置为YES,则匿名用户上传文件后系统将自动修改文件的所有者。
#若要开启,则chown_username=whoever也需指定具体的某个用户,用来作为匿名用户上传文件后的所有者。
chown_uploads=YES
#改变上传文件的所有着为whoever
chown_username=whoever
# 上传/下载日志文件所默认的路径
xferlog_file=/var/log/vsftpd.log
# 使用标准的ftpdxferlog日志格式
xferlog_std_format=YES
# 将在用户会话空闲10分钟后被中断
idle_session_timeout=600
#将在数据连接空闲2分钟后被中断
data_connection_timeout=120
#运行vsftpd需要的非特殊系统用户默认nobody
#nopriv_user=ftpsecure
# 是否允许运行特殊的FTP命令async
#async_abor_enable=YES
#启用上传的ascii传输方式
#ascii_upload_enable=YES
#启用下载的ascii传输方式
#ascii_download_enable=YES
# 用户连接服务器后显示信息
#ftpd_banner=Welcome toblah FTP service.
# 是否允许某些匿名用户使用邮件地址
#deny_email_enable=YES
# 如果是输入禁止的邮件地址的路径和名
#banned_email_file=/etc/vsftpd.banned_emails
#指定一个目录,用做在每个本地系统用户登录后的默认目录。
local_root=/home/ftp
#指定一个目录,用做匿名用户登录后的默认目录。
anon_root=/home/ftp
<style type="text/css"> <!-- @page {margin:2cm} p {margin-bottom:0.21cm} --> </style>
#在默认配置中,本地用户可以切换到自家目录以外的目录进行浏览,并在权限许可的范围内进行下载和上传。这样的设置对于一个FTP服务器来说是不安全的。如果希望用户登录后不能切换到自家目录以外的目录,则需要设置chroot选项,其中,chroot_list_file默认是/etc/vsftpd.chroot_list,该文件定义一个用户列表。这个组合用于指示用户可否切换到默认目录以外的目录。<style type="text/css"> <!-- @page {margin:2cm} p {margin-bottom:0.21cm} --> </style><style type="text/css"> <!-- @page {margin:2cm} p {margin-bottom:0.21cm} --> </style>
<style type="text/css"> <!-- @page {margin:2cm} td p {margin-bottom:0cm} p {margin-bottom:0.21cm} --> </style>
chroot_local_user |
chroot_list_enable |
|
NO |
NO |
所有用户都是可以切换到默认目录以外的 |
YES |
NO |
锁定FTP登录用户只能在其默认目录活动,不允许切换到默认目录以外。 |
YES |
YES |
chroot_list_file所指定的文件里面的用户列表都可以访问默认目录以外的目录,而列表以外的用户则被限定在各自的默认目录活动。 |
NO |
YES |
chroot_list_file所指定的文件里面的用户列表都被限定在各自的默认目录活动,而列表以外的用户则可以访问默认目录以外的目录。 |
<style type="text/css"> <!-- @page {margin:2cm} p {margin-bottom:0.21cm} --> </style>
#chroot_local_user=YES
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
<style type="text/css"> <!-- @page {margin:2cm} td p {margin-bottom:0cm} p {margin-bottom:0.21cm} --> </style>
userlist_enable |
userlist_deny |
|
YES |
NO |
只有userlist_file所指定的文件里面的用户列表里面的用户可以访问FTP。 |
YES |
YES |
userlist_file所指定的文件里面的用户列表里面的用户都被拒绝访问FTP。 |
NO |
YES |
这个列表没有实际用处,起不到限制的作用!因为所有用户都可访问FTP。 |
#该文件定义一个用户列表。
<style type="text/css">
<!--
@page
{margin:2cm}
p
{margin-bottom:0.21cm}
-->
</style>
<style type="text/css"> <!-- @page {margin:2cm} p {margin-bottom:0.21cm} --> </style>
#userlist_file <style type="text/css"> <!-- @page {margin:2cm} p {margin-bottom:0.21cm} --> </style>
#userlist_enable
#userlist_deny
#<style type="text/css"> <!-- @page {margin:2cm} p {margin-bottom:0.21cm} --> </style>指定一个目录用于存放针对每个用户各自的配置文件:
<style type="text/css"> <!-- @page {margin:2cm} p {margin-bottom:0.21cm} --> </style>
#比如指定user_config_dir=/etc/vsftpd_user_conf,则kkk登录后会产生一个/etc/vsftpd_user_conf/kkk的文件,这个文件保存的配置都是针对kkk这个用户的。可以修改这个文件而不用担心影响到其他用户的配置。
<style type="text/css"> <!-- @page {margin:2cm} p {margin-bottom:0.21cm} --> </style>user_config_dir
#是否使用ls-R命令已防止浪费大量的服务器资源
#ls_recurse_enable=YES
#这个选项必须指定一个空的数据夹且任何登入者都不能有写入的权限,当vsftpd不需要filesystem 的权限时,就会将使用者限制在此数据夹中。默认值为/var/run/vsftpd
secure_chroot_dir=/var/run/vsftpd/empty
#定义PAM所使用的名称,预设为vsftpd
pam_service_name=vsftpd
# vsftpd用的rsa证书的位置
rsa_cert_file=/etc/ssl/private/vsftpd.pem