• 19、FTP服务器


    FTP (File Transfer Protocol) 文件传输协议的简称。主要用跨网络、跨平台的文件
    传输。
     
    FTP 支持两种工作工作模式:主动模式、被动模式。
        主动模式:
    客户端使用一个任意非特权端口N (N>1024)去连接服务器的 21号端口,并发出命
           port N+1,告诉服务器连接我的 N+1 商品。服务器接到请求后,就用自己的
    20 号端口连接客户端的 N+1 商品进行数据传递。
     
        被动模式:
    客户端使用一个任意非特权端口N (N>1024)去连接服务器的 21号端口,服务器收到
    请求后,告诉客户端,你连接我的 M 号端口,来传输数据,客户户端再用 N+1号端口
    连接服务器的M号端口
     
    服务器架设:
      1、安装服务器软件
    FTP服务器软件很多的,Linux下常见的有:wu-ftp、proftp、vsftp。
            yum install vsftpd*
     
      2、配置文件
    /etc/vsftpd/vsftpd.conf
     
     
      3、服务名
    vsftpd
     
      4、端口
    控制端口: 21
    数据端口: 20  (主动模式下,被动模式下随机)
     
     
      5、访问方式
        匿名用户访问
    ftp/ftp
    anonymous/anomymous
     
        本地用户访问
    访问ftp 时,需要在ftp服务器上为其创建一个用户
     
        虚拟用户访问
    把一个ftp服务器上的用户,虚拟成若干个用户,给客户端访问,这样客户登录时的
    用户可能并不是服务器上的真实用户,这样提高服务器的安全
     
     
    例:配置匿名仅下载的ftp服务器
    vim /etc/vsftpd/vsftpd.conf
     
    anonymous_enable=YES
    anon_root=/share       --ftp登录到服务器时,ftp的根目录在哪,这一行要自己加
    download_enable=YES    --可以没有,但如果有的话,一定不能为NO
    anon_upload_enable=NO  
     
    mkdir /share
     
    service vsftpd restart
     
         客户端访问:
    1) 浏览器访问
        ftp://172.16.1.116
     
    2) 命令行
        ftp 172.16.1.116
     
        要安装ftp客户端包 yum install ftp*
     
        下载:get   
        上传:put  本地路径及文件名   服务器路径及文件
     
     
    3) ftp客户端软件访问(如gftp)
        yum install gftp*
     
     
    例:配置匿名用户能上传、能下载的ftp
    vim /etc/vsftpd/vsftpd.conf
     
    anonymous_enable=YES
    anon_root=/share       --ftp登录到服务器时,ftp的根目录在哪--这一行要自己加
    download_enable=YES    --可以没有,但如果有的话,一定不能为NO
    anon_upload_enable=YES
     
    mkdir /share
    chmod 755  /share       -- 此处一定要注意 ftp 根目录不能设置 o+w
    mkdir /share/upload
    chmod 777 /share/upload   --只能在 ftp 根目录下的子目录设置 o+w
     
    另:把防火墙和 selinux 关掉
      
     
    例:设置文件上传后的权限
    ......
     
        anon_umask=022
     
    ......
     
    例:不允许匿名用户下载
     
    ......
     
    download_enable=NO
     
    ......
            
    例:允许匿名户删除
     
    ......
        anon_other_write_enable=YES
    ......
     
    例:允许匿名用户创建目录
    ......
        anon_mkdir_write_enable=YES
    ......
     
     
    练习:配置一个只下载的ftp、配置好后,改为可上传
     
    本地用户ftp配置
         默认本地用户ftp登录是开启的,ftp 根目录是在其家目录,但本地用户登录 ftp
    有一个不好的地方是,可以任意切换目录,从而浏览整个服务器资源,所以这一点必须要控制。
     
    例:配置一个本地用户只下载的ftp服务器
    vim /etc/vsftpd/vsftpd.conf
     
    local_enable=YES
    local_root=/share
    download_enable=YES
    write_enable=NO
     
     
    例:配置一个本地用户能上传、能下载的ftp服务器   
    vim /etc/vsftpd/vsftpd.conf
     
    local_enable=YES
    local_root=/share
    download_enable=YES
    write_enable=YES
     
    例:设置本地用户ftp笼环境
        1) 将所有用户设置为笼环境
    vim /etc/vsftpd/vsftpd.conf
        ......
     
        chroot_local_user=YES
        ......
     
     
        2) 对特定的用户设置笼环境
    vim /etc/vsftpd/vsftpd.conf
        
    chroot_local_user=NO
    chroot_list_enable=YES
      chroot_list_file=/etc/vsftpd/chroot_list
     
    vim /etc/vsftpd/chroot_list
    mary
    kitty    --每个用户一行
     
    例:多用户环境下,设置每个用户不同的上传、下载权限
      如 ftp  服务器有100个用户,90个用户只能下载,8个用户只能上传,
    2个用户能上传,也能下载
     
    vim /etc/vsftpd/vsftpd.conf
     
    download_enable=YES
    write_enable=NO
    . . . . . .
     
    user_config_dir=/etc/vsftpd/user_config
     
    mkdir /etc/vsftpd/user_config
     
    如果tom 需要设置为能上传也能下载,这里不符主配置文件,那就要建用户配置文件
     
    vim /etc/vsftpd/user_config/tom
     
    write_enable=YES
     
    ftp 安全控制
     
    用户限制:
    用户限制即哪些用户能访问ftp服务器
    ftp用户提供了两个文件,来限制某些用户来登录ftp服务器,这两个文件是
    /etc/vsftpd/ftpusers    该文件中的所有都不能登录ftp服务器(黑名单)
    /etc/vsftpd/user_list   该文件可以作为黑名单也可作为白名单(只有该名单中的用户才能登录),究竟是黑名单还是白名单,要看 userlist_deny=yes
     
    如果两个文件相冲突,ftpusers 优先
     
    例:用 user_list 控制只让3个用户 tom mary kitty 登录
       
    vim /etc/vsftpd/vsftpd.conf
     
    ......
     
    userlist_enable=YES
    userlist_deny=NO     --为NO时充当白名单的作用
     
    vim /etc/vsftpd/user_list
    tom
    kitty
    mary
     
    service vsftpd restart
     
    主机限制:
    主机限制是指限制哪些主机能访问ftp服务器,主要用到的是
    /etc/hosts.allow    --允许访问
    /etc/hosts.deny     --拒绝访问
     
    格式:服务名:ip
     
    处理流程:先看 hosts.allow ,如果在名单中,马上允许,如果没在 hosts.allow
    再看是否在 hosts.deny 中,如果在就拒绝,如果不在不拒绝。
     
     
    优化与限制:
    local_max_rate=1024000    本地用户的最大传输速度
    anon_max_rate=        匿名用户的最大传输速度
    max_clients     允许的最大连接数
    max_per_ip     允许每个IP的最大连接数
    id_session_timeout=60    空闲超时
     
     
     
    http
         常用的http服务器软件有:iis、apache、nginx
     
        安装服务器软件:
    yum install httpd*
     
        配置文件:
    /etc/httpd/conf/httpd.conf
     
        使用端口:
    80
     
    例:配置http文件共享、浏览
     
    vim /etc/httpd/conf/httpd.conf
     
    ......
     
    DocumentRoot "/soft"          --http客户端的根目录
     
     
    <Directory /soft>
             Options FollowSymLinks Indexes
             AllowOverride All
    </Directory>
     
        vim /etc/httpd/conf.d/welcome.conf
     
         Options -Indexes   --把 Indexes 前的-去掉
     
        service httpd restart
     
     
    例:配置http网站
     
    vim /etc/httpd/conf/httpd.conf
     
    ......
     
    DocumentRoot "/soft"          --网站文档根目录
     
     
    ......
     
    之后把网页程序放到/soft 下,如果没有网站程序,自己写一个 index.html
     
     
    service httpd restart
     
     
    ......
     
    访问控制:
        
    vim /etc/httpd/conf/httpd.conf
     
    <Directory /soft/note>
        Options FollowSymLinks Indexes
        AllowOverride All
        
        Oder allow,deny     --放到<Directory ... > 容器中
        Allow from 172.16.1.116
        Deny from all
    </Directory>
     
     
     
     
     
  • 相关阅读:
    Serverless 架构到底要不要服务器?
    Serverless 在 SaaS 领域的最佳实践
    20 行代码:Serverless 架构下用 Python 轻松搞定图像分类和预测
    创业公司用 Serverless,到底香不香?
    如何通过 Serverless 轻松识别验证码?
    Serverless 是一种思想状态
    都 2021 年了,Serverless 能取代微服务吗?
    从零入门 Serverless | 架构的演进
    Serverless 的价值
    实验楼前后端代码
  • 原文地址:https://www.cnblogs.com/steven9898/p/11331220.html
Copyright © 2020-2023  润新知