• FTP服务


    Samba共享服务

    1.内网使用

    2.用户访问量小

    一、FTP

    1.C/S架构

    Samba(S)  -->

    FTP(S) -->

    2.端口

    1)控制连接:TCP 21(发送FTP控制连接请求等信息)

    2)数据连接:TCP 20(实现FTP的上传、下载操作)

    3.工作流程

    1)主动模式:服务器主动发起连接

    a.首先由客户端(使用本地21端口或随机产生)向服务端的21建立FTP控制连接

    b.客户端以PORT命令告知服务器"我本地已开启一个随机端口,你来吧" 2500

    c.服务器从20端口连接客户端随机端口,并建立连接关系

    2)被动模式:服务器被动等待连接

    a.首先由客户端(使用本地21端口或随机产生)向服务端的21端口建立FTP控制连接

    b.服务器以PASV命令告知客户端"我本地已开启一个随机端口,你来吧"5000-6000

    c.客户端向服务器的指定打开端口(非20端口)发送请求并连接连接关系

    注:被动模式下,端口范围定义为10000以上;适用于客户端开启防火墙的情况

    TCP 三次握手四次断开

    4.传输模式

    1)文本模式(ASCII):只支持纯文本;已不再使用

    2)二进制模式:支持文字、视频、声音、图片等

    5.FTP用户类型

    1)匿名:用户名(anonymous)、密码为空;用户名(ftp)、密码(ftp)

    2)本地用户:使用服务器本地的用户名密码登录

    3)虚拟用户:不存在的用户,可加强安全性

    6.FTP软件

    1)服务端:Windows(Serv-U、FTP发布服务)、Linux(vsftpd) 非常安全的FTP软件

    2)客户端:windows自带"计算机"、flashfxp、wget URL:等

    二、搭建的匿名的FTP

    1.安装软件包   yum -y install vsftpd

     

    2.编辑配置文件 

    //创建匿名ftp访问目录  mkdir -p /ftproot/anonymous

     

    //将匿名用户ftp的家目录更改为新建目录

    usermod -d /ftproot/anonymous ftp

     

    //给其它用户写入权限  chmod o+w /ftproot/anonymous

     

    2)编辑ftp启动服务文件   vim /etc/vsftpd/vsftpd.conf

    清除没有用的注释行命令为 :% g/^#/d

     

    anonymous_enable=YES                //启动匿名

    anon_root=/ftproot/anonymous              //指定匿名访问目录

    anon_upload_enable=YES                    //允许匿名上传

    anon_other_write_enable=YES          //允许匿名删除文件、文件夹

    anon_mkdir_write_enable=YES          //允许匿名用户新建文件夹

    anon_umask=022                            //匿名上传的文件权限为755

    pasv_enable=YES                       //启动被动模式

    pasv_min_port=10000                   //指定被动模式的最小端口

    pasv_max_port=11000                  //指定被动模式的最大端口

    local_enable=NO                //不启用本地用户

    write_enable=YES        //允许写入

    local_umask=022               //本地用户上传的文件权限为755

    dirmessage_enable=YES

    xferlog_enable=YES

    connect_from_port_20=YES

    xferlog_std_format=YES

    listen=YES                //启动监听

    pam_service_name=vsftpd           //pam认证模块名

    userlist_enable=YES           //启用userlist列表文件

    tcp_wrappers=YES             //启动TCP_WRAPPERS控制

     

    注:默认vsftpd站点位置/var/ftp/;使用:r 文件路径可将指定文件内容读取到当前文件鼠标后

    模版文件:/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf

    3.启动服务

    1)启动ftp服务      /etc/init.d/vsftpd start

     

    2)将ftp服务设置为开机自启   chkconfig  --level 35 vsftpd on

     

    4.访问(若出现以下故障有可能是虚拟机问题  真实环境不会出现)

    格式:ftp://服务器IP或域名

    故障解决(访问匿名时一直弹出输入用户名密码)

    1)chmod 755 /ftproot/anonymous    //将新建目录权限改为默认值;vsftpd匿名访问时需检查目录是否755

    2)访问成功后再把权限改成(chmod o+w /ftproot/anonymous)便拥有上传 下载 删除 更改等权限

    三、搭建匿名和虚拟用户共存

    1)定义用户密码文件   vim /etc/vsftpd/vusers

     

    注:文件中奇数为用户名;偶数为上一行用户密码

    2)转换用户密码文件到数据库文件

    //将定义的用户密码文件使用hash转换为数据库文件

    db_load -T -t hash -f /etc/vsftpd/vusers /etc/vsftpd/vusers.db

    3)新建PAM认证文件   vim /etc/pam.d/hehe

     

    4)新建本地用户  useradd -s /sbin/nologin -d /ftproot/virtual virtual

     

    //查看用户/ftproot/virtual权限  ls -ld /ftproot/virtual

    5)编辑配置文件   vim /etc/vsftpd/vsftpd.conf

    anonymous_enable=YES                //启动匿名

    anon_root=/ftproot/anonymous              //指定匿名访问目录

    anon_upload_enable=YES                    //允许匿名上传

    anon_other_write_enable=YES          //允许匿名删除文件、文件夹

    anon_mkdir_write_enable=YES          //允许匿名用户新建文件夹

    anon_umask=022                            //匿名上传的文件权限为755

    pasv_enable=YES                       //启动被动模式

    pasv_min_port=10000                   //指定被动模式的最小端口

    pasv_max_port=11000                  //指定被动模式的最大端口

    local_enable=YES         //启用本地用户,虚拟用户需使用本地用户映射

    write_enable=YES        //允许写入

    local_umask=022               //本地用户上传的文件权限为755

    dirmessage_enable=YES

    xferlog_enable=YES

    connect_from_port_20=YES

    xferlog_std_format=YES

    listen=YES                //启动监听

    pam_service_name=hehe              //pam认证模块名,指定为自定义pam文件名

    userlist_enable=YES           //启用userlist列表文件

    tcp_wrappers=YES             //启动TCP_WRAPPERS控制

    guest_enable=YES              //启动虚拟用户

    guest_username=virtual          //指定虚拟用户对应的本地映射用户

    user_config_dir=/etc/vsftpd/virtual  //指定虚拟用户配置文件存放目录

     

    注:默认虚拟用户使用匿名用户权限;如用户自行定义权限,以自权限生效

    //新建虚拟用户配置文件存放目录   mkdir -p /etc/vsftpd/virtual

     

    //在/etc/vsftpd/virtual目录下新建hehe、haha文件

    touch /etc/vsftpd/virtual/haha

    touch /etc/vsftpd/virtual/hehe

     

    //编辑权限内容  vim /etc/vsftpd/virtual/haha

     

    //将haha用户权限设置为不允许上传,但其它未指定权限都以/etc/vsftpd/vsftpd.conf匿名生效

     

    //重启ftp服务  /etc/init.d/vsftpd restart

     

    6)访问

    hehe拥有完全权限

    haha只能下载,不能上传

    注:默认匿名用户访问本地用户的家目录

  • 相关阅读:
    flask 使用 SQLAlchemy 的两种方式
    python package 的两种组织方式
    sqlalchemy 的 raw sql 方式使用示例
    Git高速入门——Git安装、创建版本号库以及经常使用命令
    mariadb 10.1.10安装
    Android studio中导入第三方类库
    怎样获取oracle dbid
    宇宙中为何存在“黑洞”?
    CSDN日报20170401 ——《假设你还是“程序猿”,我劝你别创业!》
    clang-format中文出错
  • 原文地址:https://www.cnblogs.com/feiyu-cn/p/7598204.html
Copyright © 2020-2023  润新知