vsftp配置项解析

2020-06-01 0 条评论 285 次阅读 0 人点赞

1. vsftp将本地用户限制在家目录的配置项

chroot_local_user=YES/NO

是否将本地用户限制在家目录,默认为NO,开启时需设置以下参数

allow_writeable_chroot=YES

chroot_list_enable=YES/NO

是否开启一个列表文件来对用户是否能够切换出家目录做细分限制,默认为NO,当此项开启时,须设置以下参数

chroot_list_file=/etc/vsftpd/chroot_list

上面两项参数的搭配能实现以下四种效果:

  1. 当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
  2. 当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。
  3. 当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。
  4. 当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。

2. vsftp连接模式相关的配置项

connect_from_port_20=YES

是否允许数据的主动模式(PORT)连接,默认为NO,主动模式相关的配置项有:

connect_timeout=60    <==PORT方式下建立数据连接的超时时间,单位为秒 ,默认为60

pasv_enable=YES

是否启用数据的被动模式(PAVS)连接,默认为yes,被动模式相关的配置项有:

 pasv_min_port=0    <==设置FTP被动模式连接的最小端口。默认为0,表示不受限制
 pasv_max_port=0    <==设置FTP被动模式连接的最大端口。默认为0,表示不受限制
 accept_timeout=60      <==被动(PASV)数据连接的超时时间,单位为秒,默认值为60

3. 匿名用户访问的相关配置项

anonymous_enable=YES

开启之后与之相关的配置项:

anon_upload_enable=YES  是否允许匿名用户上传文件
anon_mkdir_write_enable=YES     是否允许匿名用户新建文件夹

chown_uploads=YES   是否将上传的文件更改为指定的属主属组
chown_username=

4. 一些其他的常用配置项

local_enable=YES    <==是否允许本地用户登录FTP服务器。默认为NO
write_enable=YES    <==是否对登录用户开启写权限。属全局性设置。默认NO
local_umask=022      <==设置本地用户的文件生成umask为022。默认是077
dirmessage_enable=YES    <==设置是否显示目录消息。若设置为YES,进入目录时候将显示该目录中message_file配置文件(.message)中的内容
xferlog_enable=YES     <==是否启用FTP上传或下载日志记录。默认为NO
xferlog_file=/var/log/xferlog    <==设置日志文件名及路径。需启用xferlog_enable选项
xferlog_std_format=YES    <==日志文件是否使用标准的xferlog日志文件格式(与wu-ftpd使用的格式相同) 。默认为NO
ftpd_banner=Welcome to blah FTP service.
pam_service_name=vsftpd    <==设置在PAM所使用的名称,默认值为vsftpd
max_clients=0    <==vsftpd允许每个客户端的最大连接数,默认为0,表示不受限制
max_per_ip=0    <==vsftpd允许每个IP的最大连接数,默认为0,表示不受限制
local_max_rate=0    <==本地用户所能使用的最大传输速度。默认为0,表示不受限制
anon_max_rate=0     <==匿名用户所能使用的最大传输速度。默认为0,表示不受限制
ftp_username=ftp            <==定义匿名用户的账户名称,默认值为ftp。
no_anon_password=YES        <==匿名用户登录时是否询问口令。设置为YES,则询问。默认NO
anon_umask=022              <==设置匿名用户新增文档的umask。默认077

userlist_enable=NO
userlist_deny=YES    <==/etc/vsftpd/user_list中的用户禁止访问

userlist_enable=YES
userlist_deny=NO     <==/etc/vsftpd/user_list中的用户允许访问

5. vsftpd 530 Login incorrect 的原因和解决方案

导致530错误的原因基本都跟pam认证有关,/etc/pam.d/vsftpd这个配置文件,用来设置vsftp的登录认证,默认如下:

#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth       required     pam_shells.so
auth       include      password-auth
account    include      password-auth
session    required     pam_loginuid.so
session    include      password-auth

可能导致530错误的有:

  • auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

    auth required pam_listfile.so这项的含义是:/etc/ftpusers 中的用户禁止登陆,如果文件不存在在默认所有用户均允许登录. 所以确保用户没在这个文件内

  • auth required pam_shells.so

    auth required pam_shells.so 配置项的含义为仅允许用户的shell为/etc/shells文件内的shell命令时,才能够成功。而创建ftp用户时,为了禁止ssh登录,一般多为/bin/false 、/usr/sbin/nologin 等,显然不是一个有效的bash,也就无法登录了,所以将此项注释掉或者改为pam_nologin.so即可

  • 此外还有一个原因会导致530错误,就是主配置文件中缺少如下配置项:

    pam_service_name=vsftpd

once

这个人太懒什么东西都没留下

文章评论(0)