zoukankan      html  css  js  c++  java
  • Linux(CentOS 7)搭建VSFTP服务器

    一、FTP服务器简介

    FTP(File Transfer Protocol):文件传输协议,是一个客户机/服务器系统。使用FTP的用户需要经过验证后才能登录,FTP服务器的用户可分成3类。

    系统用户:即系统本机的用户。Linux一般不会针对实体用户进行限制,因此实体用户可以针对整个文件系统进行工作。但通常不希望他们通过FTP方式远程访问系统。

    虚拟用户:只能采用FTP方式使用系统的用户,不能直接使用Shell登录系统,即虚拟用户,访问服务器时需要验证。大多数FTP用户是这类用户。

    匿名用户:对于公共性质的服务器可以提供匿名用户访问,用户名:anonymous。但在使用匿名用户时,应对其进行尽可能多的限制,权限较低,如:同时连接的用户数量受限,访问的文件数目受限,不能上传文件,允许操作的指令较少,设置匿用户同时登入的最大联机数量等。

    ftp端口

    20、21被动和主动

    FTP服务器

     

    二、FTP服务器的安装

    1、使用yum安装vsftpd软件包 

    #yum install vsftpd ftp

    2、启动服务并设置开机自启

    #systemctl start vsftpd.service

    #systemctl enable vsftpd.service

    3、设置防火墙与selinux机制

    #firewall-cmd --permanent --zone=public --add-service=ftp

    #firewall-cmd --reload

    #setenforce 0

    实验的话可以直接关闭防火墙

    三、访问

    匿名用户访问

    访问后可以对配置文件进行修改以实现某些功能

    如:限制匿名用户访问ftp、设置权限等

    ftp配置文件是 /etc/vsftpd/vsftpd.conf

    注:修改配置文件先备份,修改后需要重启

    系统用户访问

    注:系统用户默认访问主目录,具有很大权限

    系统用户默认访问主目录,具有上传、下载、新建、删除的权限,还可以切换到的系统其他目录。

       anonymous_enable=no

       local_enable=yes

       local_umask=022

     local——umask=022是指

    新建目录后权限是755也就是0777减0022(单个数字加减)        0-0 7-0 7-2 7-2最后得到0755

    文件是0666减0022

      默认情况下,ftp服务器中所有系统用户都可以访问ftp,如何来限定只有指定的系统用户可以访问呢?vsftp中提供了两个与系统用户相关的配置文件:

          /etc/vsftpd/ftpusers  提供了一份用于禁止登录的ftp用户列表(黑名单)。

                          此文件中包含的用户将被禁止登录vsftpd服务器,不管该用户是否在

                          /etc/vfsftpd/user_list中出现。

          /etc/vsftpd/user_list 提供了一份用于允许登录的ftp用户列表(白名单),

                          此文件中包含的用户可能被禁止登录,可能被允许登录。

    具体在主配置文件vsftpd.conf中决定:

            当存在userlist_enable=YES时,user_list文件生效。

            当存在userlist_deny=YES时,则仅禁止列表中的帐户登录。

            当存在userlist_deny=NO时,则允许列表中用户登录。 

            其中:ftpusers文件的优先级要高于user_list文件,即如果一个用户同时存在于两个文件中,则被拒绝访问ftp。

    举例:只让ftpuser用户访问ftp,那么可以进行如下设置:

                     #vim /etc/vsftpd/vsftpd.conf

                     userlist_enable=YES       启用userlist用户列表(系统默认设置)

                     userlist_deny=NO         只允许列表中的用户登录   

                     #vim/etc/vsftpd/user_list

     

    将服务重启后,在客户端测试,此时只有ftpuser用户可以访问ftp

    虚拟用户访问

    认证文件验证数据库中的虚拟用户,验证成功后以一个系统用户访问ftp

    步骤

    1、安装Vsftpd虚拟用户需要用到的软件及认证模块

       #yum install pam* libdb-utils libdb* --skip-broken -y

    2、创建虚拟用户临时文件/etc/vsftpd/ftpusers.txt,用户名密码格式如下:

    techftp

    123456

    netftp

    123456

    3、生成Vsftpd虚拟用户数据库认证文件,设置权限为600

       #db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftp_login.db

       #chmod 600 /etc/vsftpd/vsftp_login.db  

    4、配置PAM认证文件:vim /etc/pam.d/vsftpd.vu

       auth   required   pam_userdb.so   db=/etc/vsftpd/vsftp_login

       account  required  pam_userdb.so  db=/etc/vsftpd/vsftp_login

    5、创建一个系统用户,用于虚拟用户映射

       #useradd -s /sbin/nologin ftpuser

    最终所有虚拟用户验证成功后,都以这个虚拟用户登录访问ftp

    但是这个系统用户无法登录Linux

    6、修改配置文件:#vim /etc/vsftpd/vsftpd.conf

       #pam_service_name=vsftpd

       pam_service_name=vsftpd.vu

       guest_enable=YES

       guest_username=ftpuser

       user_config_dir=/etc/vsftpd/vsftpd_user_conf

       virtual_use_local_privs=YES

    第一行:是指定验证文件是vsftpd,这个是系统的所以要注释掉

    第二行:是vsftpd.vu,这个是第4步自己写的验证文件

    第三行:允许虚拟用户登录

    第四行:虚拟用户验证成功后以哪个系统用户登录(这里指第5步创建的用户)

    第五行:每个虚拟用户的配置文件存放的文件夹

    第六行:虚拟用户权限问题

     

     

    7、分别为虚拟用户创建私有的虚拟目录与独立的配置文件

       #mkdir /home/ftpuser/techftp

       #mkdir /etc/vsftpd/vsftpd_user_conf

       #vim techftp

         local_root=/home/ftpuser/techftp

         write_enable=YES

         anon_world_readable_only=YES

         anon_upload_enable=YES

         anon_mkdir_write_enable=YES

         anon_other_write_enable=YES

       #mkdir /home/ftpuser/netftp

    在/etc/vsftpd/vsftpd_user_conf文件夹中

    创建每个虚拟用户单独的配置文件

    一个虚拟用户一个配置文件,配置文件的名称以虚拟用户用户名命名

     

  • 相关阅读:
    记一次省赛总结
    护网杯一道密码学的感想
    配置phpstudy+phpstorm+xdebug环境
    python 模板注入
    hash扩展攻击本地实验
    kali rolling更新源之gpg和dirmngr问题
    web信息泄露注意事项
    ctf常见php弱类型分析
    文件上传小结
    ctf变量覆盖漏洞
  • 原文地址:https://www.cnblogs.com/zhuyunlong/p/11913086.html
Copyright © 2011-2022 走看看