一次安装vsftpd过程

一、环境及安装包下载  

  环境:Centos7.5  32位系统

  安装包下载:http://mirror.centos.org/centos/7/os/x86_64/Packages/vsftpd-3.0.2-28.el7.x86_64.rpm

二:服务端安装

  1、安装前检查

        a、检测是否已安装

         rpm -qa|grep vsftpd

         rpm -qa|grep ftp

         b、强制卸载

          rpm -e vsftpd-3.0.2-28.el7.x86_64.rpm --nodeps

         c、删除相关文件        

          find / -name ftp*
          find / -name vsftp*

  2、安装

        rpm -ivh vsftpd-3.0.2-28.el7.x86_64.rpm

  3、配置

       a、查看配置⽂件所在路径

        rpm -qc vsftpd

        b、默认配置⽂件调整

        mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
        touch /etc/vsftpd/vsftpd.conf

        c、配置文件内容

              # 是否开启匿名登录
              anonymous_enable=NO
              # 是否允许使用本地帐户进行FTP用户登录验证
              local_enable=YES
              # 是否允许写
              write_enable=YES
              # 设置本地用户默认文件掩码022
              local_umask=022
              # 是否允许匿名上传
              #anon_upload_enable=YES
              # 是否允许匿名创建新目录
              #anon_mkdir_write_enable=YES
              # 同时开放其它权限
              #anon_other_write_enable=YES
              # 可以发送消息当访问某个目录时
              dirmessage_enable=YES
              # 开启上传下载记录
              xferlog_enable=YES
              # 数据链通过20端口建立,默认21端口
              #connect_from_port_20=YES

              # 是否允许其它用户上传匿名文件
              #chown_uploads=YES
              # 所有用户
              #chown_username=whoever
              # 日志保存位置
              xferlog_file=/var/log/vsftpd.log
              # 是否使用日志标准输出格式
              xferlog_std_format=YES
              # 空闲会话时间
              idle_session_timeout=600
              # 数据连接超时时间
              data_connection_timeout=120
              # 隔离的安全用户
              #nopriv_user=ftpsecure
              # 是否开启异步数据线程
              #async_abor_enable=YES
              # 是否开启ASCII协议上传
              ascii_upload_enable=YES
              # 是否开启ASCII协议下载
              ascii_download_enable=YES
              # 是否开启邮箱验证
              #deny_email_enable=YES
              # 拒绝的邮箱列表
              #banned_email_file=/etc/vsftpd/banned_emails

              # 是否允许直接获取子目录信息
              #ls_recurse_enable=YES
              # 监听IPv4
              listen=NO
              # 监听IPv6和监听IPv4
              listen_ipv6=YES

              # 虚拟用户启用pam认证
              pam_service_name=vsftpd
              # 是否用户组管理
              userlist_enable=YES
              # 是否访问控制
              tcp_wrappers=YES

              # 是否使用被动模式
              pasv_enable=YES
              # 指定使用被动模式时打开端口的最小值
              pasv_min_port=30000
              # 指定使用被动模式时打开端口的最大值。
              pasv_max_port=30999
              # 用户宽带限制200kps
              #local_max_rate=200000
              # 登录后欢迎内容
              ftpd_banner=Welcome to My FTP service.

              # ---------开启虚拟用户组参数--------
              # 是否开启虚拟用户
              guest_enable=YES
              # 主虚拟用户名vsftpd,下面会创建
              guest_username=vsftpd
              # 虚拟用户配置(可以对每一个虚拟用户进行单独的权限配置)
              user_config_dir=/etc/vsftpd/guest-users
              # 虚拟用户是否具有写权限(上传、下载、删除、重命名)
              virtual_use_local_privs=YES
              # write_enable=YES

              # 是否启用限定用户在其主目录下
              chroot_local_user=YES
              # 是否开启用户列表chroot管理
              chroot_list_enable=YES
              # chroot管理的用户列表(一行一用户,虚拟用户都要添加进去)
              # 当设置用户只能在登录目录时,chroot管理的用户为不受限制,否则相反
              chroot_list_file=/etc/vsftpd/chroot_list
              # 是否允许chroot管理用户进行写操作
              allow_writeable_chroot=YES

             d、创建用户和宿主用户

                  注意:如果规划目录不在/home/vsftpd/下,先建目录,在建用户        

              mkdir /etc/vsftpd/guest-users
              chmod 600 /etc/vsftpd/guest-users

              创建⽂件:/etc/vsftpd/guest-users.txt
              #⽤户名:aaa,密码:aaa
              #⽤户名:bbb,密码:bbb

              ⽂件内容如下:
              aaa aaa

              bbb bbb

             上述「/etc/vsftpd/guest-users.txt」中,创建了虚拟⽤户「aaa」「bbb」
             需要在「user_config_dir」对应创建名为「aaa」「bbb」的⽂件,⽂件内容如下

             mkdir /home/vsftpd/zww-gaw-bianjie(注意:目录看自己规划)

             chown -R vsftpd.vsftpd /home/vsftpd/bianjie(同上)

             cd /etc/vsftpd/guest-users

             vim aaa

               local_root=/home/vsftpd
               # 允许本地⽤户对FTP服务器⽂件具有写权限,没有write_enable权限,会报500错误
               write_enable=YES

             vim bbb

              local_root=/home/vsftpd/bianjie
              # 允许本地⽤户对FTP服务器⽂件具有写权限,没有write_enable权限,会报500错误
              write_enable=YES
              # 禁⽌下载
              download_enable=NO
              anon_other_write_enable=NO

             e、添加⾄chroot管理 , ⼀⾏⼀个虚拟⽤户即可

            vim /etc/vsftpd/chroot_list

              aaa

              bbb

             f、创建⽤户认证库

            db_load -T -t hash -f /etc/vsftpd/guest-users.txt /etc/vsftpd/guest-users.db

            chmod 600 /etc/vsftpd/guest-users.db

           g、 添加虚拟⽤户认证
            修改/etc/pam.d/vsftpd,vsftpd与上述pam_service_name相对应

            vim /etc/pam.d/vsftpd

             auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
             account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
             session optional pam_keyinit.so force revoke
             auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers one
             auth required pam_shells.so
             auth include password-auth
             account include password-auth
             session required pam_loginuid.so
             session include password-auth

h、防火墙设置

查看当前开放端⼝:firewall-cmd --zone=public --list-ports

firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --zone=public --add-port=30000-30999/tcp --permanent
firewall-cmd --zone=public --add-port=20-21/tcp --permanent
firewall-cmd --reload

i、解除SELinux限制

⼀般CentOS默认开启了SELinux,通常直接表象为:FTP服务启动成功,但⽆法登录
查看开启状态:getsebool -a | grep ftp
⾄少需打开「allow_ftpd_full_access」「ftp_home_dir」
setsebool -P allow_ftpd_full_access on
setsebool -Pftp_home_dir on

j、添加新用户

完整编写「/etc/vsftpd/guest-users.txt」⽂件,包括历史⽤户与密码信息

重新⽣成「/etc/vsftpd/guest-users.db」

k、遇到的问题

   搭建完成后发现目录错误:

   先删除主账号,移动目录,重新创建主账号

   userdel -rf vsftpd

  mv /xx  /xx

   useradd -m -s /sbin/nologin vsftpd

修改指定文件夹

vim /sbin/nologin 找到vsftp修改对应的文件路径

posted @ 2021-09-10 14:31  山村荒人  阅读(620)  评论(0)    收藏  举报