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>
 
 
 
 
 

19、FTP服务器的更多相关文章

  1. Linux下部署FTP服务器

    Linux下部署FTP服务器 下载安装包 在这里介绍的是离线部署FTP,首先下载对应的rpm包,下载链接为: 下载vsftpd服务 下载FTP客户端 安装ftp服务器 关闭防火墙 service ip ...

  2. linux 下安装ftp服务器

    最后重启    # service vsftpd restart   1.查看是否安装vsftp rpm -qa | grep ftp 如果出现    vsftpd-2.0.5-16.el5_5.1 ...

  3. Pureftp-安全的ftp服务器部署

    一.简介: Pure-FTPd 是一款免费(BSD)的,安全的,高质量和符合标准的FTP服务器. 侧重于运行效率和易用性. 它提供了简单的答案,他满足了大众化的需求,包括普通用户以及主机供应商们 Pu ...

  4. Centos下搭建ftp服务器

    完全不用那么麻烦,直接可以用xshell中自带的传输文件功能,下载客户端xftp安装就行,不用配置,可以在windows系统向Linux系统的任何文件地方上传下载文件,简单方便,大大节约时间, vsf ...

  5. Android中FTP服务器搭建入门

    http://www.2cto.com/kf/201501/374048.html http://blog.csdn.net/smile3670/article/details/44343617  有 ...

  6. CentOS 7安装配置FTP服务器

    CentOS 7下FTP服务器的安装配置. 假设我们有以下要求 路径 权限 备注 /ftp/open 公司所有人员包括来宾均可以访问 只读 /ftp/private 仅允许Alice.Jack.Tom ...

  7. 写给大忙人的centos下ftp服务器搭建(以及启动失败/XFTP客户端一直提示“用户身份验证失败”解决方法)

    注:个人对偏向于底层基本上拿来就用的应用,倾向于使用安装包,直接yum或者rpm安装:而对于应用层面控制较多或者需要大范围维护的,倾向于直接使用tar.gz版本. 对于linux下的ftp服务器,实际 ...

  8. Centos7安装vsftpd (FTP服务器)

    Centos7安装vsftpd (FTP服务器) 原文链接:https://www.jianshu.com/p/9abad055fff6 TyiMan 关注 2016.02.06 21:19* 字数 ...

  9. Linux下使用wget下载FTP服务器文件

    wget -nH -m --ftp-user=your_username --ftp-password=your_password ftp://your_ftp_host/* 使用命令下载ftp上的文 ...

随机推荐

  1. 一次shell脚本小事故,从中学习排错过程-软件测试

    一次shell脚本小事故,从中学习排错过程 事出,童鞋使用shell脚本搭建测试环境的过称中..... 配置环境变量文件:/etc/profile(用于升级JDK或其他) 手动编辑方法:vi /etc ...

  2. node.js中pm2启动应用出错

    在将公司的应用容器化时,遇到的问题. 之前,同事使用node.js 6版本运行,pm2启动js文件,一切正常. 但我一样将node.js 6版本安装,然后npm install pm2完成. 运行pm ...

  3. poppler

    https://github.com/freedesktop/poppler http://www.openjpeg.org/ https://github.com/uclouvain/openjpe ...

  4. 初学Python几个小程序练习

    使用格式化输出的三种方式实现以下输出(name换成自己的名字,既得修改身高体重,不要厚颜无耻) name = 'ABDMLBM' height = 175 weight = 140 # "M ...

  5. 一,java框架学习

    一,java框架学习 Hibernate概述Hibernate是一个开放源代码的ORM(对象关系映射)框架,对jdbc进行了轻量级的封装,是的java开发人员可以使用面向对象编程思想操作数据库,简化操 ...

  6. python time和datetime常用写法格式

    python 的time和datetime常用写法 import time from datetime import datetime from datetime import timedelta # ...

  7. Python thread (线程)

    线程 (thread) 操作系统最小的调度单位,是一串指令的集合 程序一开始就有一个主线程,新启动的线程和主线程之间互不影响,主线程启动子线程之后就相互独立(子线程也可以启动线程),无论子线程是否执行 ...

  8. CF-1132 C.Painting the Fence

    题目大意:现在有n个栅栏板,p个工人,每个工人可以涂一段区间的栅栏板,问如果雇佣p-2个工人,最多可以涂多少块栅栏板. 做法:先求出q个工人能涂得最多木板数,并统计每个木板被涂的次数.求被涂一次的木板 ...

  9. 队列和 BFS —— 栈和 DFS

    队列和 BFS: 广度优先搜索(BFS)的一个常见应用是找出从根结点到目标结点的最短路径. 示例 这里我们提供一个示例来说明如何使用 BFS 来找出根结点 A 和目标结点 G 之间的最短路径. 洞悉 ...

  10. 【MySQL】GTID小结

    1.GTID的概念 GTID(global transaction identifier)是全局事务标识符,在MySQL5.6版本中作为一个超级特性被推出.事务标识不仅对于Master(起源)的服务器 ...