文章目录
  1. 1. 安装ftp服务器 vsftpd
  2. 2. 配置文件说明
    1. 2.1. 启动脚本:
    2. 2.2. 主配置文件

安装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

1
2
3
4
5
6
7
8
9
10
# 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的用户列表

由userlist_deny 和 userlist_enable 和 userlist_file指定

  • userlist_deny=NO
  • userlist_enable=YES
  • userlist_file=/etc/vsftpd/allowed_users
    如果userlist_deny为NO, 表示userlist_file 指定的是允许访问ftp服务器的用户
    如果userlist_deny为YES, 表示userlist_file 指定的是禁止访问ftp服务器的用户
  • anonymous_enable 是否允许匿名登陆
    如果设置为YES 用户可使用用户名ftp或anonymous进行ftp登录,口令为用户的E-mail地址。
    匿名用户登陆后的根目录位于 ftp用户的根目录, 例如 ftp:x:121:130:ftp daemon,,,:/srv/ftp:/bin/false
    那么匿名用户登陆之后的根目录为 /srv/ftp
    还可以通过anon_root 指定匿名用户的根目录, 例如anon_root=/home/caodan/code
  • local_enable 是否允许本地用户登陆(即linux系统中的用户帐号)
    本地用户登录后会进入用户主目录,而匿名用户登录后进入匿名用户的下载目录/var/ftp/pub
    若只允许匿名用户访问,前面加上#注释掉即可阻止本地用户访问FTP服务
    为本地用户指定登陆目录:
    添加配置项 user_config_dir=/etc/vsftpd/userconf 
    如果需要设置test用户的登陆目录, 则需要创建文件/etc/vsftpd/userconf/test, 
    该文件中的内容为: local_root=/var/ftp/test, 指定登陆目录为/var/ftp/test
    
  • write_enable 是否允许本地用户对FTP服务器文件具有写权限
  • local_umask 本地用户文件掩码
    本地用户默认掩码为077
  • anon_upload_enable 是否允许匿名用户上传文件,须将全局的write_enable=YES
  • anon_mkdir_write_enable 否允许匿名用户创建新文件夹
  • dirmessage_enable 是否激活目录欢迎信息功能
    当用户用CMD模式首次访问服务器上某个目录时,FTP服务器将显示欢迎信息
    默认情况下,欢迎信息是通过该目录下的.message文件获得的
    也可以通过ftpd_banner指定
  • xferlog_enable 是否让系统自动维护上传和下载的日志文件
    默认情况该日志文件为/var/log/vsftpd.log,也可以通过xferlog_file选项对其进行设定
  • connect_from_port_20 是否设定FTP服务器将启用FTP数据端口的连接请求
    Make sure PORT transfer connections originate from port 20 (ftp-data).
    ftp-data数据传输,21为连接控制端口
  • chown_uploads 设定是否允许改变上传文件的属主, 需要与chown_username配合使用
  • chroot_list_enable 用户登录FTP服务器后是否具有访问自己目录以外的其他文件的权限
    设置为YES时,用户被锁定在自己的home目录, 需要与chroot_list_file配合使用
  • chroot_list_file=/etc/vsftpd/chroot_list
    被列入此文件的用户,在登录后将不能切换到自己目录以外的其他目录, 此文件需要自己建立
    例:
    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
    
  • chroot_local_user 限制本地用户在自己的家目录
    如果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的账户, 而其他没有指定的账户都会被限制在自己的家目录内
  • check_shell=NO 注意:这个地方如果不配置,就会出现只有root用户可以登陆,普通用户不可以
  • seccomp_sandbox=NO 注意:该选项不配置可能导致莫名其妙的530问题

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

文章目录
  1. 1. 安装ftp服务器 vsftpd
  2. 2. 配置文件说明
    1. 2.1. 启动脚本:
    2. 2.2. 主配置文件