blog:linux_system_manage:vsftp

配置vsftpd服务

安装ftp服务器 vsftpd

vs means very secure

sudo apt-get install vsftpd

配置文件说明

/etc/init/vsftpd.conf

这是一个upstart脚本, 指定了主配置文件的路径: /etc/vsftpd.conf 和可执行文件的路径为/usr/sbin/vsftpd

��中/etc/vsftpd.conf中指定了PAM service的名称位vsftpd PAM的配置文件的路径为: /etc/pam.d/ 所以vsftpd的PAM配置文件为: /etc/pam.d/vsftpd

# Standard behaviour for ftpd(8). # auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed # # # Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so. # # # Standard pam includes # @include common-account # @include common-session # @include common-auth # auth required pam_shells.so

其中/etc/ftpusers中指定了阻止访问的用户

/etc/vsftpd.conf

指定禁止或允许使用vsftpd的用户列表

由userlistdeny 和 userlistenable 和 userlist_file指定

*

userlistdeny=NO * userlistenable=YES * userlistfile=/etc/vsftpd/allowedusers

  如果userlist_deny为NO, 表示userlist_file 指定的是允许访问ftp服务器的用户
  如果userlist_deny为YES, 表示userlist_file 指定的是禁止访问ftp服务器的用户

* anonymousenable 是否允许匿名登陆 如果设置为YES 用户可使用用户名ftp或anonymous进行ftp登录,口令为用户的E-mail地址。 匿名用户登陆后的根目录位于 ftp用户的根目录, 例如 ftp:x:121:130:ftp daemon,,,:/srv/ftp:/bin/false 那么匿名用户登陆之后的根目录为 /srv/ftp 还可以通过anonroot 指定匿名用户的根目录, 例如anonroot=/home/caodan/code * localenable 是否允许本地用户登陆(即linux系统中的用户帐号)

  本地用户登录后会进入用户主目录,而匿名用户登录后进入匿名用户的下载目录/var/ftp/pub
  若只允许匿名用户访问,前面加上#注释掉即可阻止本地用户访问FTP服务
  为本地用户指定登陆目录:
      添加配置项 user_config_dir=/etc/vsftpd/userconf 
	如果需要设置test用户的登陆目录, 则需要创建文件/etc/vsftpd/userconf/test, 
      该文件中的内容为: local_root=/var/ftp/test, 指定登陆目录为/var/ftp/test

* writeenable 是否允许本地用户对FTP服务器文件具有写权限 * localumask 本地用户文件掩码

  本地用户默认掩码为077

* anonuploadenable 是否允许匿名用户上传文件,须将全局的writeenable=YES * anonmkdirwriteenable 否允许匿名用户创建新文件夹 * dirmessageenable 是否激活目录欢迎信息功能 当用户用CMD模式首次访问服务器上某个目录时,FTP服务器将显示欢迎信息 默认情况下,欢迎信息是通过该目录下的.message文件获得的 也可以通过ftpdbanner指定 * xferlogenable 是否让系统自动维护上传和下载的日志文件 默认情况该日志文件为/var/log/vsftpd.log,也可以通过xferlogfile选项对其进行设定 * connectfromport20 是否设定FTP服务器将启用FTP数据端口的连接请求 Make sure PORT transfer connections originate from port 20 (ftp-data). ftp-data数据传输,21为连接控制端口 * chownuploads 设定是否允许改变上传文件的属主, 需要与chownusername配合使用 * chrootlistenable 用户登录FTP服务器后是否具有访问自己目录以外的其他文件的权限 设置为YES时,用户被锁定在自己的home目录, 需要与chrootlistfile配合使用 * chrootlistfile=/etc/vsftpd/chrootlist

被列入此文件的用户,在登录后将不能切换到自己目录以外的其他目录, 此文件需要自己建立 
例:
    chroot_list_enable=YES 
    chroot_list_file=/etc/vsftpd/chroot_list
  其中chroot_list中为caodan, 那么如果使用用户名caodan登陆ftp, 将不能切换到caodan的家目录外的其他目录
但是重启登陆的时候提示 "500 OOPS: vsftpd: refusing to run with writable root inside chroot()"
这是由于用户的根目录 /home/caodan 可写,并且使用了chroot限制, 这在最近的更新里面是不允许的
解决办法: 
    去掉改目录的可写的权限或者 allow_writeable_chroot=YES

* chrootlocaluser 限制本地用户在自己的家目录

  如果chroot_local_user被设置为YES, 并且没有设置chroot_list_enable  和 chroot_list_file
那么所有的本地用户都会被限制在自己的家目录里, (也需要设置allow_writeable_chroot)
如果设置了chrott_local_user位YES, 并还设置了chroot_list_enable 和 chroot_list_file
那么, chroot_list_file中设置的用户就是不会被chroot的账户, 而其他没有指定的账户都会被限制在自己的家目录内

* checkshell=NO 注意:这个地方如果不配置,就会出现只有root用户可以登陆,普通用户不可以 * seccompsandbox=NO 注意:该选项不配置可能导致莫名其妙的530问题

firefox中需要安装插件 fireftp才可以从ftp站点下载或者上次数据 直接打开ftp服务器的地址,默认采用匿名用户登录, 如果想使用指定用户登录,地址格式为: ftp://username@hostname

  • blog/linux_system_manage/vsftp.txt
  • 最后更改: 2022/01/09 23:01
  • 127.0.0.1