zoukankan      html  css  js  c++  java
  • FTP服务搭建

    一、FTP的用户类型

    1、匿名用户:用户名为ftp 或 anonymous,提供任意密码(包括空密码)都可以通过服务器验证。一般用于公共文件的下载,如提供一些免费的软件,学习资料下载的站点。 
    2、本地用户:直接使用本地系统用户账号进行验证 
    3、虚拟用户:统统以分独立的用户数据库文件进行登录验证,将FTP账号与Linux系统账户的关联性降至最低,为系统提供更好的安全性

     

    二、实例搭建

    1、搭建匿名用户访问的FTP服务 
    前期准备: 
    (1)安装FTP服务软件 
    yum -y install vsftpd vsftpd 为ftp服务的软件 
    ftp的共享目录 /var/ftp/pub 
    (2)更改共享目录pub的属主为ftp,系统默认就有ftp这个用户。 
    chown ftp /var/ftp/pub 
    image_1crejslcbike1v151k6m11ah1rlf9.png-17.7kB 
    (3)开放匿名用户的配置文件并启动vsftp服务,ftp的配置文件路径 /etc/vsftpd/vsftpd.conf 
    (4)cd /etc/vsftpd 
    (5)备份配置文件---》cp vsftpd.conf{,.bak} 
    (6)打开配置文件 vim vsftpd.conf 
    (7)配置FTP 
    微信图片_20181104140052.png-50.3kB

    2、开启ftp服务 
    /etc/init.d/vsftpd start 
    image_1cremmmp6jntgkm1v4s12u61fo056.png-15kB
    3、检查ftp端口,确认是否已开启 
    netstat -antup | grep vsftpd 
    4、关闭防火墙 service iptables stop 或 setenforce 0(关闭虚拟机的防火墙) 
    以上服务端配置完毕 
    4、客户端装ftp 
    yum -y install ftp 
    5、登录服务端的ftp 
    ftp 服务端ip地址 
    6、填写ftp,因为是匿名用户 
    7、填写密码 因为没有密码,所以直接回车即可 
    image_1cren0av7v29oeo10rf1rks16cu5j.png-24.2kB 
    注1:你在哪个目录下进入的ftp就会在当前目录下操作上传或下载。 
    注2:进入后help查看ftp里面的使用命令。在ftp里get代表下载,你当前在哪个目录登陆ftp就下载到哪个目录,在ftp里put代表上传命令,也只能上传客户端当前目录里的文件,不能是绝对路径上传


    2、搭建本地用户验证FTP服务 
    【2.1】创建本地用户 
    useradd 用户1 useradd 用户2 
    echo “密码”| passwd --stdin 用户1 &> /dev/null 
    echo “密码”| passwd --stdin 用户2 &> /dev/null 
    【2.2】备份ftp配置文件 
    因为做匿名用户的时候已经备份过了,所有我们把原文件改个名即可,主要区分下是本地用户要用的配置文件 
    mv vsftpd.conf vsftpd.conf.anon 
    cp vsftpd.conf.bak vsftpd.conf 
    【2.3】打开配置文件 vim vsftpd.conf 
    1、关闭匿名用户 
    image_1crenge2i1tp813rimb9i4k1kv7t.png-13.9kB 
    2、 开启本地用户的家目录锁定,每个用户的共享文件在每个用户的家目录里面,也就是用户家目录下的用户目录 
    image_1crenf73a6u51l7t671ugq1mef7g.png-35.6kB

    【2.4】重启ftp服务 
    /etc/init.d/vsftp reload 
    【2.5】本地用户测试 
    客户端操作: ftp ftp服务器ip 
    进入后输入本地用户名及密码 
    image_1creo610p1251ebn10ls1hudkjq8a.png-9kB

    image_1creo7qut58h1gkdsmf93o16p68n.png-43.2kB

    【2.6】ftpusers 与 user_list 用户列表的使用,他们在/etc/vsftpd下 
    【2.6.1】ftpusers文件:FTP服务器的黑名单,优先级高于user_list 
    【2.6.2】user_list文件:此用户列表默认情况下也是黑名单,即在此用户列表中的用户不可访问FTP服务器 
    但可以通过vsftpd.conf主配置文件的修改将此名单改为白名单,且仅此名单中的用户可以访问 
    注:直接将想加入的黑名单用户名直接写进文件即可


    3、搭建虚拟用户验证的FTP

    【3.1】备份ftp配置文件 
    mv vsftpd.conf vsftpd.conf.local 
    cp vsftpd.conf.bak vsftpd.conf 
    【3.2】创建虚拟账号文件 
    vim ./vusers.list 创建 写:zhangsan 123 lisi 123 wangwu 456 
    微信图片_20181104151531.png-5.8kB

    【3.3】使用db_load生成数据库加密文件,没有的话安装以下 
    db_load -T -t hash -f vusers.list vusers.db 
    参数说明:-T 允许非Berkeley的程序使用该数据库 
    -t 指定算法(hash:哈希,散列) 
    -f 指定源文件 
    注:生成的数据库文件必须为.db格式 
    【3.4】给vusers.db 600权限 
    chmod 600 vusers.db 
    【3.5】添加虚拟映射账号并指定家目录位置为/vat/ftproot/,为FTP根目录修改权限 
    useradd -d /var/ftproot/ -s /sbin/nologin virtual 
    mkdir -p /var/ftproot/ 
    chmod 755 /var/ftproot/ 
    【3.6】增加PAM认证 
    vim /etc/pam.d/vsftpd.vu 
    image_1crepl4051ak814pjo6k1esn1vs4bg.png-15.1kB

    写:auth  required  pam_userdb.so  db=/etc/vsftpd/vusers
        account  required  pam_userdb.so  db=/etc/vsftpd/vusers
    

    【3.7】修改vsftpd.conf配置文件 
    vim vsftpd.conf 
    image_1cres6blimfn12342tnvkmqtcct.png-58.4kB

    image_1cres7q9q17ajnv017c71umf1k5mdq.png-15.4kB

    【3.8】重启服务 
    /etc/init.d/vsftpd reload

    【3.9】客户端测试 
    用刚设置的虚拟账号登录ftp服务器 
    image_1cresaefvh9q1nf88p913la696e7.png-42.8kB

    【3.10】实现每个虚拟用户不同根目录、不同权限的管控 
    【3.10.1】创建用户控制目录,并创建虚拟所对应的同名配置文件 
    进入vsftpd目录创建 
    1、mkdir ./vusers.dir 
    2、cd vusers.dir 
    3、touch zhangsan lisi wangwu 
    【3.11】修改虚拟用户的配置文件 
    vim wangwu 
    写:anon_upload_enable=YES 表示允许匿名上传 
    anon_mkdir_write_enable=YES 表示允许匿名创建目录 
    anon_other_write_enable=YES 表示允许匿名用户有写权限 
    anon_max_rate=1 设置上传下载速度为1字节 
    local_root=/var/wangwu 单独给虚拟用户设置自己的目录 
    【3.12】创建虚拟用户设置自己的目录 
    mkdir -p /var/wangwu 
    【3.13】更换虚拟账号文件的属主 
    chown virtual /var/wangwu 
    【3.14】修改ftp配置文件,告诉他对虚拟账号的设置 
    vim vsftpd.conf 
    image_1creslrki1g461o331tve83d8cek.png-23.1kB 
    告诉ftp虚拟账号的配置文件所在位置 
    【3.15】重启服务 
    /etc/init.d/vsftpd reload

  • 相关阅读:
    ASP.NET CORE中控制器内return HTML 内容自动编码问题
    sql server中调用c#写的dll里的方法
    牛腩视频播放管理系统
    apicloud开发笔记
    asp.net core在linux上的部署调试
    C#-微信公众平台接口-上传临时素材
    csc.exe已退出,代码为-532462766
    牛腩记账本core版本源码
    sql server中根据地图经纬度算距离
    ASP.NET CORE做的网站运行在docker上(不用dockerfile文件部署)
  • 原文地址:https://www.cnblogs.com/mendermi/p/9904575.html
Copyright © 2011-2022 走看看