当前位置 博文首页 > 超负荷小生的博客:ftp-上课实练记录

    超负荷小生的博客:ftp-上课实练记录

    作者:[db:作者] 时间:2021-09-08 19:48

    题目

    在本机利用vsftp创建ftp服务器要求:
    1、设置ftp服务器使用虚拟账号方式进行访问;
    2、创建本宿舍人员的虚拟账号,密码为abc;
    3、只有宿舍长能够向服务器上传文档并编辑,宿舍其他成员只能下载;
    4、利用centos中的ftp工具将包括宿舍人姓名的abc.txt文件上传到服务器上;
    5、利用宿舍其他人员的账号将文件下载到/usr/tmp目录中;

    具体操作步骤

    1、下载软件

    yum -y install vsftpd
    yum -y install ftp
    

    2、关闭防火墙和SElinux在实际情况中不能关闭防火墙,仅限实验操作

    systemctl stop firewalld
    setenforce 0
    

    3、查看配置并更改

    vim /etc/vsftpd/vsftpd.conf
    

    查看,取消注释的

    anonymous_enable=NO #关闭匿名服务将改配置改为NO
    pam_service_name=vsftpd # PAM将根据/etc/pam.d/vsftpd进行认证 ,主要的
    userlist_enable=YES
    tcp_wrappers=YES //基于主机的访问控制
    ascii_upload_enable=YES
    ascii_download_enable=YES
    chroot_local_user=YES
    

    手动填写的

    guest_enable=YES #设定启用虚拟用户功能
    guest_username=ftpuser # 指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了
    user_config_dir=/etc/vsftpd/vuser_conf
    allow_writeable_chroot=YES
    

    4、编辑认证文件 和 注释掉无关配置

    vim /etc/pam.d/vsftpd
    auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
    account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
    

    需要将vsftpd 上面的没用到配置全部注释掉

    5、编写账户和密码

    vim /etc/vsftpd/vuser_passwd.txt
    

    奇数行:用户名 偶数行:密码

    sushezhang
    abc
    sheyuan1
    abc
    sheyuan2
    abc
    sheyuan3
    abc
    

    6、将txt文件转换为db文件

    cd /etc/vsftpd/
    db_load -T -t hash -f vuser_passwd.txt vuser_passwd.db
    

    7、在vsftpd中创建vuser_passwd.txt中的对应的用户文件

    mkdir vuser_conf
    

    设置宿舍长

    vim vuser_conf/sushezhang
    
    #指定用户目录
    local_root=/var/www/sushe
    #允许写入
    write_enable=YES
    #允许浏览FTP目录和下载
    anon_world_readable_only=NO
    #允许虚拟用户上传文件
    anon_upload_enable=YES
    #允许虚拟用户创建目录
    anon_mkdir_write_enable=YES
    #允许虚拟用户执行其他操作(如改名、删除)
    anon_other_write_enable=YES
    

    设置社员

    vim vuser_conf/sheyuan1
    local_root=/var/www/sushe
    anon_world_readable_only=NO
    

    8、创建文件并授权

    mkdir -p /var/www/sushe
    chmod -R 777 /var/www/sushe
    

    9、测试
    在linux中进行测试
    在当前目录新建文件vim abc.txt输入相关信息
    1、ftp 192.168.192.131
    2、sushezhang 密码abc
    3、上传 put abc.txt 出现以下内容说明成功

    150 Ok to send data.
    226 Transfer complete.
    7 bytes sent in 7.5e-05 secs (93.33 Kbytes/sec)
    

    4、quit 退出
    6、登录 sheyuan1 密码 abc
    7、get abc.txt 出现以下内容说明成功

    226 Transfer complete.
    7 bytes received in 0.000135 secs (51.85 Kbytes/sec)
    

    社员put时
    put xxx.txt 出现以下情况说明不能上传
    550 Permission denied.

    或者ls查看也可以

    10、虚拟用户添加
    先把原来的db文件删除,然后在重新生成

    11、错误记录

    错误:
    在客户端登录vsftpd时报530 login incorret 错误,**
    方法(1):注释掉/etc/pam.d/vsftpd文件里这后一行:
    auth required pam_shells.so,这样不去鉴权
    方法(2):在/etc/shells文件里面增加一行:
    /sbin/nologin,这样允许不能登录系统的用户通过鉴权

        cat /etc/passwd 查看自己的用户是不是/sbin/nologin,有的是  /usr/sbin/nologin,
          在/ etc/shells对应着添加
    

    方法(3):注释user_ist配置
    userlist_enable项注释掉,或置为NO
    查看错误日志
    tail -f /var/log/secure
    错误一:500 OOPS: cannot change directory:/home/admin
    解决:关闭SElinux
    错误二: BDB3037 /etc/vsftpd/vuser_passwd.db: file size not a multiple of the pagesiz
    解决:重启centos,出现错误的原因是频繁启动vsftp服务
    错误三:FTP连接时出现“227 Entering Passive Mode”的解决方法
    客户端登录FTP服务器后,用passive命令关闭客户端的PASV方式,如下:
    ftp> passive
    Passive mode off.

    再次执行该命令就可以启用PASV模式。

    cs
    下一篇:没有了