# vsftpd 安装与配置
# vsftpd 安装
# Ubuntu apt-get 安装
sudo apt-get install vsftpd
# 检查是否安装
dpkg -s vsftpd
# vsftpd 配置
# 配置文件位置
vim /etc/vsftpd.conf
# 安装后通常需要修改的配置
# 如果设置为 YES, 则 vsftpd 将以独立模式运行,由vsftpd 自己监听和处理连接请求
listen=YES
# 关闭 IPV6,否则无法访问
listen_ipv6=NO
# 不允许匿名访问
anonymous_enable=NO
# 支持 utf-8 文件系统
utf8_filesystem=YES
# 全部配置解释
# 允许匿名访问,默认为YES,可选值【yes,no】
anonymous_enable=NO
# 本地用户允许访问,默认为YES,可选值【yes,no】
local_enable=YES
# 设定允许进行写操作(上传、删除),默认为YES,可选值【yes,no】
write_enable=YES
# 设定权限掩码,默认022,对应的文件上传权限644、目录权限755
local_umask=022
# 设定匿名访问情况下,允许上传
anon_upload_enable=NO
# 设定匿名访问情况下,允许创建目录
anon_mkdir_write_enable=NO
# 设定开启目录标语功能
dirmessage_enable=YES
# 设定端口20进行数据连接,并不是ftp链接端口.
connect_from_port_20=YES
# 是否改变上传文件的属主,如果是需要输入一个系统用户名,你可以把上传的文件都改成root属主
chown_uploads=YES
# 设定禁止上传文件更改宿主
chown_username=whoever
# 设定开启日志记录功能
xferlog_enable=YES
# 设置日志目录
xferlog_file=/var/log/ftp/vsftpd.log
# 设定日志使用标准的记录格式
xferlog_std_format=YES
# 设定空闲连接超时时间,这里使用默认。将具体数值留给每个具体用户具体指定,当然如果不指定的话,还是使用这里的默认值600,单位秒。
idle_session_timeout=600
# 设定单次最大连续传输时间,这里使用默认。将具体数值留给每个具体用户具体指定,当然如果不指定的话,还是使用这里的默认值120,单位秒。
data_connection_timeout=120
# 设定支撑Vsftpd服务的宿主用户为手动建立的Vsftpd用户。注意,一旦做出更改宿主用户后,必须注意一起与该服务相关的读写文件的读写赋权问题。比如日志文件就必须给与该用户写入权限等。
nopriv_user=vsftpd
# 设定支持异步传输功能。
async_abor_enable=YES
# 设定支持ASCII模式的上传功能。
ascii_upload_enable=YES
# 设定支持ASCII模式的下载功能。
ascii_download_enable=YES
# 设定Vsftpd的登陆标语。
ftpd_banner=This Vsftp server supports virtual users ^_^
# 可将某些特殊的 email address 抵挡住。如果以anonymous 登录服务器时,会要求输入密码,也就是您的email address, 如果很讨厌某些email address ,就可以使用此设定来取消他的登录权限,但必须与下面的设置项配合
deny_email_enable=YES
# 当上面的 deny_email_enable=YES 时,可以利用这个设定项来规定那个email address 不可登录vsftpd 服务器,此文件需用户自己创建,一行一个email address 即可!
banned_email_file=/etc/vsftpd/banned_emails
# 是否允许递归查询 , 大型站点的 FTP 服务器启用此项可以方便远程用户查询
ls_recurse_enable=YES
# 设置为 NO 时,用户登录FTP 服务器后具有访问自己目录以外的其他文件的权限, 设置为 YES 时 , 用户被锁定在自己的 home 目录中,vsftpd 将在下面 chroot_list_file 选项值的位置寻找 chroot_list 文件,此文件需用户建立, 再将需锁定在自己home 目录的用户列入其中,每行一个用户
chroot_local_user=YES
chroot_list_enable=YES
# 此文件需自己建立 , 被列入此文件的用户 , 在登录后将不能切换到自己目录以外的其他目录 , 由 FTP 服务器自动地 chrooted 到用户自己的home 目录下,使得 chroot_list 文件中的用户不能随意转到其他用户的FTP home 目录下,从而有利于FTP 服务器的安全管理和隐私保护
chroot_list_file=/etc/vsftpd/chroot_list
# 如果设置为 YES , 则 vsftpd 将以独立模式运行,由vsftpd 自己监听和处理连接请求
listen=YES
# 设定是否支持IPV6
listen_ipv6=YES
# 设置 PAM 外挂模块提供的认证服务所使用的配置文件名 ,即/etc/pam.d/vsftpd 文件,此文件中file=/etc/vsftpd/ftpusers 字段,说明了PAM 模块能抵挡的帐号内容来自文件/etc/vsftpd/ftpusers 中
pam_service_name=vsftpd
# 此选项默认值为NO , 此时ftpusers 文件中的用户禁止登录FTP 服务器;若此项设为YES ,则 user_list 文件中的用户允许登录 FTP 服务器,而如果同时设置了 userlist_deny=YES ,则 user_list 文件中的用户将不允许登录FTP 服务器,甚至连输入密码提示信息都没有,直接被FTP 服务器拒绝
userlist_enable=YES/NO
# 此项默认为YES ,设置是否阻扯user_list 文件中的用户登录FTP 服务器
userlist_deny=YES/NO
# 表明服务器使用 tcp_wrappers 作为主机访问控制方式,tcp_wrappers 可以实现linux 系统中网络服务的基于主机地址的访问控制,在/etc 目录中的hosts.allow 和hosts.deny 两个文件用于设置tcp_wrappers 的访问控制,前者设置允许访问记录,后者设置拒绝访问记录。例如想限制某些主机对FTP 服务器192.168.57.2 的匿名访问,编缉/etc/hosts.allow 文件,如在下面增加两行命令:vsftpd:192.168.57.1:DENY 和vsftpd:192.168.57.9:DENY 表明限制IP 为192.168.57.1/192.168.57.9 主机访问IP 为192.168.57.2 的FTP 服务器,此时FTP 服务器虽可以PING 通,但无法连接
tcp_wrappers=YES
# 是否支持 utf-8 文件名
utf8_filesystem=YES