网络共享服务:ftp,nfs,samba比较

从跨平台角度说,
samba, ftp差不多, 而nfs不支持windows平台
从挂载角度说,
samba, nfs可以把远程目录挂载到本地目录上, 对用户是透明的. 而ftp则不行
从使用范围上说,
samba, nfs最好是限定在局域网内, 不要暴露在公网上. 而ftp则不同, 既可以面向内网, 也可以是公网.
从面向对像来说,
三者都支持文件, 但samba还支持打印机, 以及作windows域管理器 

FTP(File Transfer Protocol,文件传输协议)是INTERNET上仍常用的最老的网络协议之一,他为系统提供了通过网络与远程服务器进行传输的简单方法,在REDHAT ENTREPRISE LINUX7中,FTP服务器包的名称为VSFTPD,他代表Very Secure File Transfer Protocol Damon,服务器名称也叫做vsftpd

vsftp提供三种远程的登录方式:
(1)匿名登录方式:不需要用户名和密码,就可以登录到服务器上
(2)本地用户方式:需要账户名和密码才能登录,而且,这些用户都必须是系统已经存在的用户
(3)虚拟用户:同样需要用户名和密码才能登录,但是,这些用户是系统里面没有的。

默认配置文件让ANONYMOUS用户只能下载位于CHROOT目录中的内容
/var/ftp/这意味着远程FTP客户端能以用户ANONUMOUS或ftp身份连接到服务器(无需密码),并从ftp服务器上的/var/ftp/目录中下载文件(其本地ftp用户可以读取这些文件)

FTP的两个连接:

  命令连接: 文件管理类命令,始终在线的连接

  数据连接: 数据传输,按需创建及关闭的连接   

  主动: 由服务器创建连接命令:Client:50000 --> Server: 21数据:Client: 50000+1 <-- Server: 20/tcp被动: 由客户端创建连接      命令:Client:50000 --> Server: 21数据: Client: 50000+1 --> Server: 随机端口

服务器端程序有:

 wu-ftpd:vsftpd: Very Secure ftp Daemonproftp:pureftpdFileZillaServ-U

客户端程序有:

CLI: ftplftp, lftpget
GUI:gftpFlashftpcuteftpfilezillagftp(Linux GUI)

安装服务器端vsftpd程序:

yum install vsftpd -y  //这里是192.168.1.102作为vsfptd服务器

安装客户端ftp程序:

yum install ftp -y  //这里是192.168.1.104作为客户端进行测试

客户端访问:

# ftp 192.168.1.7

服务器端程序vsftpd程序相关文件组成

用户认证配置文件: /etc/pam.d/vsftpd服务脚本:        /etc/rc.d/init.d/vsftpd配置文件目录:     /etc/vsftpd  主配置文件: /vsftpd.conf匿名用户(映射为ftp用户)共享资源位置: /var/ftp系统用户通过ftp访问的资源的位置: 用户自己的家目录虚拟用户通过ftp访问的资源的位置: 给虚拟用户指定的映射成为的系统用户的家目录
主程序:          /usr/sbin/vsftpd

vsftpd配置文件及相关配置: /etc/vsftpd/vsftpd.conf

匿名用户的配置:  anonymous_enable=YES  //允许匿名用户登录anon_upload_enable=YES  //允许匿名用户上传文件anon_mkdir_write_enable=YES  //允许匿名用户创建目录anon_other_write_enable=YES  //允许匿名用户执行delete,rmdir等这些操作 示例:服务器端:# mkdir upload         # setfacl -m u:ftp:rwx upload  //让ftp这个用户对upload目录拥有读写执行权限,当然也可以直接对pub目录修改权限    客户端:以ftp用户登录,密码置空         # cd upload         # lcd /etc          # put fstab  //可以上传文件到upload目录中,anon_upload_enable=YES         # mkdir test  //也可以创建目录了,anon_mkdir_write_enable=YES          # delete fstab  // 删除文件, anon_other_write_enable=YES         # rmdir upload  //删除目录

系统用户的配置:  local_enable=YES  //允许系统用户登录write_enable=YES  //允许系统用户上传删除操作local_umask=022禁锢所有的ftp本地用户于其家目录:chroot_local_user=YES禁锢文件中指定的ftp本地用户与家目录chroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list  //让本地用户登录后执行pwd命令后看到的都是”/“,而不是自己的家目录  示例:    服务器端创建一个用户:# useradd user1     客户端登录: 以user1用户登录            # mkdir upload  // write_enable=YES            # lcd /etc             # put fstab

日志:xferlog_enable=YESxferlog_std_format=YESxferlog_file=/var/log/xferlog

改变上传文件的属主chown_uplodads=YESchown_username=whoever

vsftpd使用pam完成用户认证,其用到的pam配置文件:pam_service_name=vsftpd

是否启用控制用户登录的列表文件:userlist_enable=YES  //是否开启控制用户登录的功能,下面选项读取的是/etc/vsftpd/user_list文件userlist_deny=YES|NO  //如果为YES,user_list中的用户就不能登录,为黑名单; 如果为NO,user_list中的用户就可以登录,为白名单

连接限制:max_clients: 最大并发连接数;max_per_ip:  每个IP可同时发起的并发请求数

传输速率:anno_max_rate:  匿名用户的最大传输速率,单位是“字节/秒”local_max_rate: 本地用户的最大传输速率

虚拟用户:所有的虚拟用户会被统一映射为一个指定的系统账号,访问的共享位置即为此系统账号的家目录
     各虚拟用户可被赋予不同的访问权限通过匿名用户的权限控制参数进行指定    

虚拟用户账号的存储方式:  1.文件: 编辑文件       奇数行为用户       偶数行为密码
   但是此文件需要被编码为hash格式,所以修改不是很方便
  2.关系型数据库中的表中:       即时查询数据库完成用户认证       vsftpd是基于pam认证用户的,所以pam要依赖于pam-mysql模块,没有这个模块所以要安装第三方程序:EPEL源中的pam_mysql    

vsftpd基于mysql进行用户认证

1. 安装pam_mysql及mysql客户端

这里以192.168.1.102作为vsftpd服务器:  安装mysql客户端: yum install mysql -y  安装pam_mysql依赖包: yum install pam_mysql

2. 创建虚拟用户账号

1. 准备数据库及相关表这里准备的是192.168.1.105上安装的mariadb数据库,并且已经正常启动,建立存储虚拟用户的数据库,比如这里将其创建为vsftpd数据库  mysql> CREATE DATABASE vsftpd;  mysql> GRANT SELECT ON vsftpd.* TO vsftpd@'192.168.1.%' IDENTIFIED BY 'www.alen.com';  mysql> GRANT SELECT ON vsftpd.* TO vsftpd@127.0.0.1 IDENTIFIED BY 'www.alen.com';  mysql> FLUSH PRIVILEGES;

  mysql> USE vsftpd;  mysql> CREATE table users(    -> id int AUTO_INCREMENT NOT NULL,    -> name char(20) binary NOT NULL,    -> password char(48) binary NOT NULL,    -> PRIMARY KEY(id)    -> );

  在vsftpd服务器上测试连接mysql服务器:# mysql -uvsftpd -h 192.168.1.105 -pwww.alen.com

2. 添加测试的虚拟用户根据需要添加所需要的用户,这里将其密码为了安全应该使用PASSWORD函数加密后存储mysql> INSERT INTO users(name,password) VALUES('tom',PASSWORD('alen'));   mysql> INSERT INTO users(name,password) VALUES('jerry',PASSWORD('alen'));

3. 配置vsftpd

1. 建立pam认证所需文件
# vi /etc/pam.d/vsftpd.mysql
添加如下两行:crypt的值参照rpm -q pam_mysql命令结果中的readme文档中的crypt条目0:明文 2: 数据库password加密的方式
auth required /lib/security/pam_mysql.so user=vsftpd passwd=www.alen.com host=192.168.1.105 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2account required /lib/security/pam_mysql.so user=vsftpd passwd=www.alen.com host=192.168.1.105 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

注意: 由于mysql的安装方式不同,pam_mysql.so基于unix sock连接mysql服务器时可能会出问题,此时,建议授权一个可远程连接的mysql并访问vsftpd数据库的用户。   

2. 修改vsftpd的配置文件,使其适应mysql认证建立虚拟用户映射的系统用户及相应目录# useradd -s /sbin/nologin -d /var/ftproot vuser  //-d ftpserver/pub 可以是一个单独的文件系统# chmod go+rx /var/ftproot确保/etc/vsftpd.conf中已经启用了以下选项anonymous_enable=YESlocal_enable=YESwrite_enable=YESanon_upload_enable=NOanon_mkdir_write_enable=NOchroot_local_user=YES而后添加以下选项guest_enable=YESguest_username=vuser并确保pam_service_name选项的值如下所示pam_service_name=vsftpd.mysql

4. 启动vsftpd服务

# service vsftpd start
# chkconfig vsftpd on查看端口开启情况
# netstat -tnlp | grep :21使用虚拟用户登录,验证配置结果,以下为在192.168.1.104上的命令方式测试,你也可以在其他Win Box上用IE或者FTP客户端工具登录验证
# ftp 192.168.1.102

5. 配置虚拟用户具有不同的访问权限

vsftpd可以在配置文件目录中为每个用户提供单独的配置文件以定义其ftp服务访问权限,每个虚拟用户的配置文件名同虚拟用户的用户名,配置文件目录可以是任意未使用目录,只需要在vsftpd.conf指定其路径及名称即可
1. 配置vsftpd为虚拟用户使用配置文件目录
# vim vsftpd.conf
添加如下选项
user_config_dir=/etc/vsftpd/vusers_config2.创建所需要目录,并为虚拟用户提供配置文件
# mkdir /etc/vsftpd/vusers_config
# cd /etc/vsftpd/vusers_config
# touch tom jerry3. 配置虚拟用户的访问权限
虚拟用户对vsftpd服务的访问权限是通过匿名用户的相关指令进行的,比如,如果需要让tom用户具有上传文件权限,可以改/etc/vsftpd/vusers_config/anon_world_readable_only=NO
anon_upload_enable={YES|NO}
anon_mkdir_write_enable={YES|NO}
ano_other_write_enable={YES|NO}

6. 常见权限配置

local_root=/var/www/html/web1 //虚拟用户登录后的新的根目录
virtual_use_local_privs=NO //虚拟用户和本地用户有相同的权限,默认是NO
anon_umask=022 //设置上传或创建目录的权限
write_enable=YES //开放本地用户写权限
anon_world_readable_only=NO //开放下载权限,写成YES,将不能列出文件和目录
anon_upload_enable=YES //开放上传权限
anon_mkdir_write_enable=YES //开放创建目录权限
anon_other_write_enable=YES 开放删除、重命名权限

补充:

  其他下载工具 :axel, lftpget, wget, curl

        

转载于:https://www.cnblogs.com/ckh2014/p/10803432.html

网络共享服务(一)之FTP相关推荐

  1. 网络共享服务(三)之SAMBA

    前面说到了FTP和NFS,由于FTP是客户端和服务器基于ftp应用协议进行交换数据的,它不支持挂载共享目录的方式,而NFS又不支持跨平台,所以就催生了第三种网络共享服务:samba Samba是在Li ...

  2. win8系统关闭共享服务器,Windows8系统关闭Windows Media Player网络共享服务的方法

    Windows Media Player是一款Windows自带的媒体播放器,可以播放一些本地视频,不过有些windows8系统用户发现Windows Media Player有可在网络上共享媒体的功 ...

  3. 安装 Samba 网络共享服务, 可以通过网络访问我们指定的文件夹

    samba 是一种网络共享服务, 可以通过网络访问我们指定的文件夹. 做嵌入式开发, 大部分的时间都是在写代码或者修改代码, 这个过程我们一般是在 windows 上进行的, 然后把我们改好的代码放到 ...

  4. win8 windows media player 服务器运行失败,Win8如何关闭Windows Media Player网络共享服务?...

    最近有Win8用户反映,由于电脑内存日渐饱和,导致运行速度越来越卡,听人说Windows Media Player网络共享服务占用挺大一部分的内存,所以想将其关闭,但又苦于不知如何关闭.那么,Win8 ...

  5. 网络共享服务Samba和NFS配置

    samba是一个工具套件,在Unix上实现SMB(Server Message Block)协议,或者称之为NETBIOS/LanManager协议.SMB协议通常是被windows系列用来实现磁盘和 ...

  6. Linux实战教学笔记22:企业级NFS网络文件共享服务

    第二十二节 企业级NFS网络文件共享服务 标签(空格分隔): Linux实战教学笔记-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品,允许转载 ...

  7. (转)企业级NFS网络文件共享服务

    企业级NFS网络文件共享服务 原文:http://www.cnblogs.com/chensiqiqi/archive/2017/03/10/6530859.html --本教学笔记是本人学习和工作生 ...

  8. NFS网络文件共享服务

    NFS网络文件共享服务 1.1 NFS介绍 1)什么是NFS? NFS是Network File System的缩写,中文意思是网络文件系统.它的主要功能是通过网络(一般是局域网)让不同的主机系统之间 ...

  9. FTP服务器、部署YUM仓库与NFS共享服务

    FTP协议 概述 搭建与配置 部署YUM仓库服务 概述 配置本地 yum 源仓库 安装yum远程源(ftp模式) FNS共享存储服务 NFS概念 NFS使用场景 NFS服务 NFS配置安装 FTP协议 ...

最新文章

  1. 一脸懵逼学习Hive的元数据库Mysql方式安装配置
  2. java 对象数据 搜索,java – 使用反射检索对象的数据类型
  3. html线条绕圆旋转,js围绕圆旋转
  4. WIN32 使用事件实现高效生产者消费者模型
  5. 实时数仓入门训练营:实时计算 Flink 版 SQL 实践
  6. Gentoo 网络接口配置文件说明
  7. HihoCoder-1174拓扑排序
  8. 阿里云 cGPU 容器技术白皮书
  9. 远程控制电脑的实现方法汇总
  10. 2018年腾讯实习生招聘模拟笔试:硬币组合-个人思路及代码
  11. springboot毕设项目养老院信息管理系统kak2w(java+VUE+Mybatis+Maven+Mysql)
  12. Oracle 实现 right 函数
  13. 角度转换之度分秒的转换成度
  14. 成熟男人与24岁女孩精彩对白 —非常感动
  15. C/C++运行错误收藏
  16. Spring常见面试题55道(附答案2023最新版)
  17. Swagger2.0
  18. HTML学习-13css3圆角和透明色
  19. 华硕(ASUS)枪神系列出厂系统win10/11原厂OEM系统
  20. 计算机工程实习报告PCB,计算机工程实习实习报告.doc

热门文章

  1. top---报错terminal is not big enough
  2. xen挂载虚拟机分区删除日志 破解密码无所不能
  3. 获取图片像素颜色,转换为CSS3 box-shadow显示
  4. [收藏]比较著名的.net技术论坛网址(含国外的)
  5. python之内置函数(二)与匿名函数、递归函数初识
  6. js模拟栈---进制转化。十进制转任意进制进制,任意进制转十进制
  7. java基础 知识点
  8. MongoDB开发学习开天辟地,经典入门
  9. Asp.net2.0下的大文件上传服务器控件
  10. cannot open line '/dev/tty.usbserial' for r/w resource busy