• FTP的安装配置使用


    ///////////////////////////////FTP///////////////////////////////////////////////////
    写在前面:
    在linux 环境下,有三个主要的FTP服务器:vsftpd、proftpd和wu-ftpd
    基于安全原因,vsftpd占据了主导地位
    其安全性使用了chroot工具来改变根目录位置

    ftp: 使用20端口传送指令
    ftp-data:使用21端口数据传输

    分为主动连接和被动连接两种模式
    因此在搭建FTP环境时,记得考虑主动连接和被动连接的问题

    其他链接:
    vsftp使用mysql存放虚拟用户并验证:
    http://www.aminglinux.com/bbs/thread-342-1-1.html
    ftp的主动和被动模式:
    http://www.aminglinux.bbs/thread-961-1-1.html

    /////////////////////////////////////////////////////////////////////////////////////
    目录
    一、什么是ftp
    二、使用pure-ftpd搭建FTP服务
    三、使用vsftp搭建FTP服务


    ///////////////////////////////////////////////////////////////
    一、什么是ftp
    FTP是 File Transfer Portocol(文件传输协议)的英文简称,而中文简称为文传协议,用于Internet上的控制文件的双向传输
    FTP的主要作用,就是让用户连接上一个远程的计算机(这些计算机上运行着FTP服务器程序),查看远程计算机与有哪些文件,然后把文件从远程就安吉上拷贝到本地计算机,或者把本地计算机的文件送到远程计算机去
    在centos或者是RedHat Linux上有自带的ftp软件叫做vsftpd

    二、使用pure-ftpd搭建FTP服务
    pure-ftpd官网
    http://www.pureftpd.org/project/pure-ftpd

    yum install -y epel-release(否则是找不到pure-ftpd这个包的)
    yum install -y pure-ftpd

    执行下面一系列命令:
    (其实这个是个脚本,建立用户名或者密码可以自行定义)
    curl www.aminglinux.com/study_v2/.pf.c > /etc/pure-ftpd/pure-ftpd.conf
    user=`mkpasswd -l 5 -s 0 -d 0 -C 0`
    pass=`mkpasswd -s 0`
    echo $user $pass > /tmp/ftp.pass(这是我们的用户名密码,防止自己忘掉了)
    mkdir /data/ftp #创建FTP服务的目录(这是我们共享的目录)

    echo -e "$pass $pass"|pure-pw useradd $user -u YongHu -d /data/ftp
    (-u YongHu 映射YongHu用户,让他去写这个目录。其实用户可以随便一个,不过要存在这个用户)


    然后
    pure-pw mkdb #创建密码文件,默认在/etc/pure-ftpd/pureftpd.pdb
    /etc/init.d/pure-ftpd start #启动服务

    其他命令:
    pure-pw list #列出用户
    pure-pw userdel $user #删除账号


    测试一下:
    客户端上:
    yum install -y lftp
    lftp usernname@192.168.31.166


    登陆了FTP后可以使用的命令:
    下载 get filename
    上传 put filename
    查看帮助 help get/put/...


    这个自己了解一下:
    filezilla-server
    filezilla-client

    【这个FTP局限性:命令行操作的】
    【通常情况下我们是Windows环境下的FTP】

    三.使用vsftp搭建FTP服务
    yum install -y vsftpd db4-utils
    建立虚拟账号相关联的系统账号
    useradd virftp -s /sbin/nologin
    //我们创建这个和虚拟用户关联的系统用户实际上是为了让虚拟用户可以使用系统用户的身份上传下载
    建立虚拟账户相关的文件
    vim /etc/vsftpd/vsftpd_login
    //格式如下:
    //奇数行:用户名
    //偶数行:密码
    //缺点:是明文的,不安全
    test1
    123456
    test2
    abcdef

    chmod 600 /etc/vsftpd/vsftpd_login
    生成对应的库文件
    db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
    如果更改了用户密码(也就是vsftpd_login这个文件),需要重新db_load以及重启服务


    建立虚拟账号相关的目录及配置文件
    mkdir /etc/vsftpd/vsftpd_user_conf(虚拟用户的配置路径,全部都集中到这个目录下)
    cd /etc/vsftpd/vsftpd_user_conf 创建和用户对应的配置文件

    创建我们第一个用户名的配置文件:(要和我们vsftpd_login 的用户一致)
    vi test1 //内容模板如下:
    local_root=/home/virftp/test1
    annoymous_enable=NO
    write_enable=YES
    local_umask=022
    anon_upload_enable=NO(匿名上传)
    anon_mkdir_write_enable=NO
    idle_session_timeout=120
    max_clients=10
    max_per_ip=5
    local_max_rate=50000

    因为没有该目录,所以
    mkdir /home/virftp/test1
    修改权限:
    chown -R virftp:virftp /home/virftp

    更改用户认证相关的配置文件:
    vim /etc/pam.d/vsftpd
    //在最开头添加两行
    auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login //如果是64位系统,则
    /lib64/security/pam_userdb.so
    account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login//如果是64位系统,则
    /lib64/security/pam_userdb.so


    再修改主配置文件:
    vi /etc/vsftpd/vsftpd.conf

    annoymous_enable=YES改为NO
    anon_upload_enable=YES改为NO
    anon_mkdir_write_enable=YES改为NO

    local_enable=YES(本地用户可用/不可用 )
    write_enable=YES
    local_umask=022

    再增加
    chroot_local_user=YES
    guest_enable=YES(如果NO,虚拟用户无法登陆)
    guest_usernmae=virftp
    virtual_use_local_privs=YES
    user_config_dir=/etc/vsftpd/vsftpd_user_conf33(虚拟用户的配置路径)


    【chroot_local_user=YES】
    【pasv_enable=YES】如果是被动连接,一定要设置为YES


    启动vsftpd
    /etc/vsftpd/vsftpd start 会出现启动失败(因为端口被占用了,被pure-ftpd占用了)


    测试:
    lftp test1@192.168.31.166
    aminglinux

  • 相关阅读:
    关于linux curl 地址参数的问题
    mac系统安装php redis扩展
    Shell获取上一个月、星期的时间范围
    python redis使用
    python pycurl模块
    Memcached常规应用与分布式部署方案
    mysql忘记密码重置(mac)
    shell命令从目录中循环匹配关键词
    python两个文件的对比
    MySQL优化方案
  • 原文地址:https://www.cnblogs.com/ImJerryChan/p/6567189.html
Copyright © 2020-2023  润新知