一、匿名用户

1、要求:

  • vsftpd服务器只允许匿名登录
  • 匿名用户在根目录下只能下载
  • 匿名用户在pub子目录下可以新建、下载、上传、重命名文件(文件夹)

2、过程:

  • (1)修改配置文件
  • vi /etc/vsftpd/vsftpd.conf
  • anonymous_enable=YES
  • local_enable=NO
  • write_enable=YES
  • anon_umask=022
  • anon_upload_enable=YES
  • anon_mkdir_write_enable=YES
  • anon_other_write_enable=YES
  • anon_world_readable_only=NO
  • systemctl restart vsftpd
  • (2)SELLinux设置
  • 设置安全策略:
    setsebool -P allow_ftpd_anon_write=1
  • 修改安全上下文:
    chcon -R -t public_content_rw_t /var/ftp/pub
  • (3)防火墙配置
    firewall-cmd --permanent --add-sevices=ftp

二、本地用户

1、要求:

  • 允许账号登录FTP服务器,但不能登录本地系统
  • 对账号根目录进行限制,不能进入根目录以外的任何目录

2、过程:

  • (1)创建用户,并禁止本地登录
  • useradd -s /sbin/nologin user
  • passwd user
  • (2)创建根目录,并赋予其他用户相应权限
  • mkdir -p /var/www/html
  • chmod o+w /var/www/html
  • (3)修改安全上下文,使根目录能够写入
  • chcon -t public_content_rw_t /var/www/thml
  • (4)修改配置文件
  • anonymous_enable=NO //禁止匿名用户登录
  • local_enable=YES //允许本地用户登录
  • write_enable=YES
  • local_umask=022
  • local_root=/var/www/html //设置本地用户的根目录为/var/www/html
  • chroot_local_user=YES
  • allow_writeable_chroot=YES
  • (5)修改SELinux允许本地用户登录
  • getsebool -a|grep ftp
  • setsebool -P ftp_home_dir=1
  • (6)重启vsftpd服务,使配置生效
  • systemctl restart vsftpd
  • (7)设置防火墙规则
  • firewall-cmd --permanent --add-services=ftp
  • firewall-cmd --reload

三、虚拟用户

1、要求:

  • vuser1只能进行下载
  • vuser2能进行下载和上传
  • 对下载/上传流量进行控制

2、过程:

  • (1)操作虚拟用户列表
  • 建立虚拟用户的用户名、密码列表的文本文件
    vi /etc/vsftpd/vusers.list
  • 用db_load转换工具,将文本文件(上一步所建立的文件)转化为数据库文件
    db_load -T -t hash -f vusers.list vusers.d
  • 修改虚拟用户列表文件及数据库文件访问权限。
    chmod 600 /etc/vsftpd/vusers.*
  • (2)创建虚拟用户对应的本地用户
  • 禁止他们本地登录
  • 设置用户主目录的访问权限
  • (3)修改SELinux安全上下文,允许对用户主目录读写
    chcon -t public_content_rw_t /var/ftp/teacherdir
  • (4)建立支持虚拟用户的PAM认证文件
    vi /etc/pam.d/vusers.vu
  • (5)修改/etc/vsftpd/vsftpd.conf主配置文件
    vi /etc/vsftpd/vsftpd.conf
  • anonymous_enable=NO
  • local_enable=YES //使用虚拟用户一定要启用本地用户
  • chroot_local_user=YES //将所有本地用户限制在家目录中(需添加)
  • guest_enable=YES //启用用户映射功能,允许虚拟用户登录(需添加)
  • pam_service_name=vusers.vu //指定对虚拟用户进行PAM认证的文件名vuser.vu
  • user_config_dir=/etc/vsftpd/vconfig //指定虚拟用户的配置文件的位置(需添加)
  • allow_writeable_chroot=YES

centos8 ftp服务配置可匿名上传_Linux服务器

  • (6)为虚拟用户ftp、techer建立各自独立的配置文件
    mkdir /etc/vsftpd/vconfig
  • ** vuser1**
  • vi /etc/vsftpd/vconfig/vuser1
  • guest_username=svuser1 //设置ftp对应的本地用户为ftpuser
  • local_root=/var/ftp/share //用户登录后所在的目录
  • anon_world_readable_only=NO //允许浏览和下载
  • anon_max_rate=500000 //限定传输速率为500KB/s
  • vuser2
  • vi /etc/vsftpd/vconfig/vuser2
  • guest_username=svuser2
  • local_root=/var/ftp/noshare
  • anon_world_readable_only=NO
  • write_enable=YES //允许写入
  • anon_upload_enable=YES //允许上传
  • anon_mkdir_write_enable=YES //允许创建文件夹
  • anon_max_rate=1000000 //限定传输速度为1000KB/s
  • (7)修改SELinux允许本地用户登录和匿名用户具有写入权限
  • (8)重新加载vsftpd服务,使配置生效
    systemctl restart vsftpd