FTP 搭建
第一部分:理论
一. FTP服务器的基本原理
1. 基本概念:ftp是文件传输协议,(file transport portocol)
2. 数据传输模式:主动模式和被动模式  (要和binary ascii 区分一下)
3. 使用的端口号: A 主动模式 :命令控制端口:21    数据传输端口:20
B 被动模式 :命令控制端口:21    数据传输端口:1024之后的随机端口

二. 常用的FTP 服务器软件
1. windows下:iis  server-U
2. Linux下:wu-ftp  proftp vsftp  (现在的主流是vsftp,其他的两种基本被淘汰)
三. Linux常用的服务器软件:vsftp 它是本章的重点:vsery security transport portocol
四.常用的ftp客户端软件
1. 特点:运行在图形环境下的窗口程序,可使用鼠标和通过菜单进行操作,操作方便
2.常用的ftp客户端软件: windows下有Cuteftp  leapftp  flashxp filezilla是windows下运行的开源软件
   
   Linux下有gftp,是GNOME桌面环境中运行的ftp客户的软件,是我GNOME的重要组成部分

五. voftpd.conf中常用的配置参数:
anonymous_enable=YES   (启用匿名用户,即:允许匿名用户登录)
   
    local_enable=YES   (启用本地用户,即:允许本的用户登录)
write_enabe=YES (启用本地用户写的权限,即:本的用户登录到宿主目录后有写的权限)
local_umask=022 (本地用户生成文件的掩码,上传文件的权限是644) 
【如果上传文件夹的总权限为777,文件为666,可以用 file_open_mode=0777】   
【注:文件夹的最大权限是777,文件的最大权限是666】 
 
    xferlog_enable=YES (设置为YES时,ftp服务器将启用上传和下载日志。日志文件:/var/log/xferlog
xferlog_std_format=YES (设为YES时,ftp服务器将使用标准的ftp xferlog 日志格式)
dual_log_enable=YES (设置为时将生成两个相似的日志文件分别是/var/log/xferlog和/var/log/vsfptpd.log)
connect_from_port_20=YES (设为YES时,将启用ftp数据端口的连接请求)
pam_service_name=YES (设置PAM认证服务的配置文件名称)
userlist_enable=YES  (设为YES时,FTP服务器将检查vsftpd.user_list 文件中的用户是否可以访问ftp服务器)
【userlist_enable=YES  userlist_deny=NO 表示vsftpd.user_list 文件中的用户可以登录ftp服务器】
   
    【userlist_enable=YES  userlist_deny=NO 表示vsftpd.user_list文件中的用户不可以登录ftp服务器】
【默认情况下userlist_deny=YES,即:vsftpd.user_list文件中的用户不能登录发图片服务器】
listen=YES 设为YES时,ftp服务器以独立方式启动,否则以超级进程的方式启动
tcp_wrappers=YES  设为YES时,ftp服务器将使用tcp_wrappers作为主机访问控制方式

    chroot_local_user=YES/NO  限制本地用户是否禁锢在自己的宿主目录中
chroot_list_enable=YES/NO 
    chroot_list_file=/etc/vsftpd/chroot_list [chroot_list文件中的用户被禁锢在自己的宿主目录中]
max_clients=100  最大客户端的数量
max_per_ip=5     每个ip的最大连接数
 
    local_mal_rate=50000  本地用户最大的传输速率  (单位是byte,字节)
anon_max_rate=20000   匿名用户最大传输速率    (单位是byte,字节)
listen_port=2121      更改ftp默认的端口号

六. ftp 服务器中默认的黑名单:/etc/vsftpd.ftpusers  (此文件中的用户不能登录ftp服务器)
七. /etc/vsftpd.user_list 文件具有对vsftpd服务器跟灵活的用户访问控制
1. 如果想让该文件中的用户禁止登录ftp服务器:
userlist_enable=YES
   userlist_deny=YES
2. 如果想让该文件中的用户可以登录ftp服务器:
    
   userlist_enable=YES
   userlist_deny=NO
八. vsftpd支持的用户类型
1. 匿名用户:匿名用户名称:ftp和anonymous    登录目录:/var/ftp
2. 系统用户:系统中实际存在的用户            登录目录:/该用户的宿主目录
3. 虚拟用户:非系统用户                      登录目录:  可手工指定

九. 命令行模式下常用命令:
put (上传,这能上传一个文件)
   get (下载,这能下载一个文件)
   mput(上传,可上传多个文件)
   mget(下载,可下载多个文件)
第二部分:实验

实验一:测试匿名用户和系统用户
1.安装ftp软件包:# rpm -ivh vsftpd
2.启动ftp服务器:# service vsftpd start
3.建立系统用户。(匿名用户不用建立)
 
4.在客户端登录ftp进行测试:
A. 在cmd里面用命令测试,格式为:ftp 服务器的ip  然后输入用户名和密码
B. 用客户端软件测试: windows下可用flashxp cuteftp leapftp 测试
                        Linux下可用 gftp测试(先安装gftp 软件包)
  
  【匿名用户测试时,用户名为ftp或anonymous,输入密码时,直接回车即可】
  【系统用户测试时,输入系统用户的用户名和密码】

实验二:虚拟用户的支持
1. 建立虚拟用户的口令库文件。(奇数行是用户名,偶数行是密码。在/etc/vsftpd/目录下建立该文件,假设为benet。文件名可自定义)
2. 生产vsftpd的认证文件(需要先安装db4-util软件包)
# db_load  -T  -t  hash  -f  /etc/vsftpd/benet   /etc/vsftpd/benet.db (注意修改该文件的权限)
3. 建立虚拟用户所需要的PAM 配置文件(在/etc/pam.d/目录下创建该文件。文件名可自定义,假设为ftp)
# vim  /etc/pam.d/ftp 输入下面内容:
 
    auth  required  /lib/security/pam_userdb.so   db=/etc/vsftpd/benet(库名) 
account  required  /lib/security/pam_userdb.so   db=/etc/vsftpd/benet(库名) 

3. 建立虚拟用户登录目录,并修改相应权限(修改主目录权限为700)
# useradd -s /sbin/nologin/   -d /aa qq
 
  # chmod 700 /aa
 
  【该系统用户qq不能登录,宿主目录是/aa。所有的虚拟用户都将登录到/aa这个目录中。-s 和 -d 参数不是必须的】
4. 设置/etc/vsftpd/vsftpd.conf配置文件,在文档末尾添加如下内容:
guest_enable=YES
   guest_username=qq(qq是上面的系统用户)
   pam_service_name=ftp(ftp是pam认证的模块名称)
   user_config_dir=/etc/vsftpd/config(config要手动创建,它是虚拟用户权限配置目录。在该目录中以虚拟用户的用户名编辑文件,设置权限)
5. 进入/etc/vsftpd/config目录,以虚拟用户的名字编辑权限配置文件,可用参数如下:
anon_world_readable_only=NO (表示用户可以浏览ftp目录和下载文件)
anon_upload_enable=YES      (表示用户可以上传文件)
 
  anon_mkdir_write_enable=YES (表示用户具有建立目录的权限,但不能删除目录)
 
  anon_other_write_enable=YES (表示用户具有文件改名和删除文件的权限)
local_root=/zz              (指定虚拟用户的登录目录)

补充实验
1. 如何实现匿名用户的上传文件权限?
 
 A. 在/var/ftp/目录下建立目录。
 B.修改/etc/vsftpd/vsftpd.conf文件: anon_upload_enable=YES (虚拟用户可上传文件)
        anon_mkdir_write_enable=YES (虚拟用户可创建目录)
        anon_world_readable_only=YES (虚拟用户可浏览和下载文件)
       【根据需要设置相应的权限】
                                 

2. 如何限制系统用户任意切换宿主目录?
chroot_local_user=YES

3. 虚拟用户aa,权限设置可上传,可建立文件夹,可删除文件夹,最大传输速率为0.5MB,登录目录为/ftpsite
local_root=/ftpsite
   anon_world_readable_only=NO
   anon_upload-enable=YES
   anon_mkdir_write_enable=YES
   anon_other_write_enable=YES
   anon_max_rate=500000
  

转载于:https://blog.51cto.com/rdlinux/293784

VSFTP配置详解+虚拟用户的支持相关推荐

  1. vsftp配置详解篇

    在配置安装vsftpd过程中,我遇到了很多坑?查了上百篇博客,才把这些坑一一填满.这里记录是为了方便后来者查阅,我也是个小白.有问题请不要客气,直接喷就是了! vsftpd 就是very secure ...

  2. vsftpd配置详解——控制用户目录权限

    一.控制目录权限 1.参数说明: chroot_local_user:是否将所有用户限制在主目录,YES为启用 NO禁用.(该项默认值是NO,即在安装vsftpd后不做配置的话,ftp用户是可以向上切 ...

  3. Linux vsftp配置详解

    一.vsftpd说明: LINUX下实现FTP服务的软件很多,最常见的有vsftpd,Wu-ftpd和Proftp等.Red HatEnterprise Linux中默认安装的是vsftpd. 访问F ...

  4. Spring框架深入(四)--SpringMVC配置详解

    一.SpringMVC web模型 二.@RequestMapping参数说明 1.value:定义处理方法的请求的URL地址: 2.method:定义处理的方法的http method类型,如GET ...

  5. 移动用户远程接入L2TP配置详解

    移动用户远程接入L2TP-vpn配置详解 学会查找参考文档,和官方资料很重要 华为企业产品技术支持网站 - 华为 1.话不多说先上图: 图为模拟环境的基础环境配置 模拟软件:ensp 系统环境:win ...

  6. Apache虚拟主机配置详解

    Apache虚拟主机配置详解 1.配置环境说明 系统环境:CentOS7 Apache环境:编译安装的httpd-2.4.7 系统限制:关闭了防火墙和selinux hosts文件中配置以下域名解析 ...

  7. 服务器文件共享不同用户互访设置,samba配置_samba文件共享服务配置详解

    摘要 腾兴网为您分享:samba文件共享服务配置详解,之了课堂,央视影音,人人理财,平安证券等软件知识,以及游戏通用窗口化工具,福建省校讯通,净天之命1.71,teamviewer安卓,宝贝听听,手机 ...

  8. FTP服务的简介和配置详解

    FTP服务的简介和配置详解 注意:配置FTP服务时,最好关闭防火墙和selinux 1.FTP服务简介 FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为& ...

  9. vsftpd的配置详解

    配置环境:(防火墙.SELinux关闭) [root@miner_k ~]# cat /etc/redhat-release CentOS release 6.8 (Final) vsftpd的安装: ...

最新文章

  1. 利用pmap查看进程的地址空间
  2. leetcode 二分查找 Search in Rotated Sorted ArrayII
  3. java重命名sheet失败_java jxl excel 数据导出 重新命名无效的工作表名称 | 学步园...
  4. 基于Android的闹钟的软件
  5. SilverLight开发系列第2步:使用vs2008和Blend 2.5打造Hellow World程序
  6. 【今日CV 视觉论文速览】05 Dec 2018
  7. 09-Mysql数据库----外键的变种
  8. edius隐藏快捷键_超级实用的edius常用快捷键
  9. 吴恩达深度学习教程及资料
  10. 5g的八大关键指标_详解5G两大关键性技术,如何实现标志性能力指标
  11. matlab怎么画函数线,请问matlab怎么画常数函数,比如同时画x=300和x=400这两条线...
  12. 《刻意练习》读书心得 驳斥1万小时定律、有目的的练习、自我实现的预言、走出舒适区
  13. linux服务器强制关机,Mac强制关机的4种方法以备不时之需
  14. 手把手带你抓取智联招聘的“数据分析师”岗位!
  15. python logging配置时间或大小轮转
  16. 大数据处理基本思想——分治法
  17. 低代码开发,是程序员的“福”还是“祸”?
  18. 第七届科技节获奖及建模论文相似度名单公示
  19. 华为《悟空》刷屏:愿你如少年,永不知天高地厚
  20. Linux 多个留后门姿势

热门文章

  1. C语言atoi函数的用法
  2. C++迭代器使用错误总结
  3. 软件工程---08.软件测试
  4. Redis常见问题及其一些重点知识总结
  5. linux编程手册读书笔记第一章(20140329)
  6. 使用poll实现的io多路复用服务端和客户端
  7. qt 分割字符串的两种方法
  8. Python3条件判断
  9. Java进阶学习资料!dockerjar内存
  10. mybatis的select、insert、update、delete语句