文件共享服务FTP介绍

  • FTP(File Transfet Protocol):文件传输协议

  • FTP是一种在互联网中基于TCP协议端到端的数据传输协议

  • 基于C/S架构,默认使用20、21号端口

  • 端口20(数据端口)用于数据传输

  • 端口21(命令端口)用于接收客户端发出的相关FTP命令

FTP工作模式

  • 主动模式:FTP客户端从本机的非特殊端口(>1023)连接FTP服务器的命令端口21,服务端通过本地的20号端口主动向客户端的随机端口发起连接请求,开始传输数据

  • 被动模式:FTP客户端通过向FTP服务器发送PASV命令进入被动模式,FTP服务器会另开一个随机端口,客户端主动连接到随机端口后,开始传输数据

  • 可以实现ftp功能的软件:

  • WU-ftpd:

  • proftpd:

  • pureftp:

  • vsftpd:非常安全的ftp服务器

  • ServU:

  • 客户端访问ftp服务器工具:

  • ftp

  • lftp、lftpget

  • wget

  • curl

  • FileZilla:windows客户端工具,可从软件商店直接下载

vsftpd介绍

  • vsftpd(very secure ftp daemon)非常安全的FTP守护进程

  • 是一款运行在Linux操作系统上开源且免费FTP服务程序

  • 不仅完全开源而且免费,还为我们提供了一个快速的、稳定并且安全的FTP服务

vsftpd用户模式

  • 本地用户

  • 虚拟用户

  • 匿名用户

vsftpd服务相关参数

  • /var/ftp #匿名用户共享目录

  • /etc/vsftpd #配置文件所在目录

  • /etc/vsftpd/vsftpd.conf #主配置文件

  • /usr/sbin/vsftpd #主程序文件

  • /etc/vsftpd/ftpusers #黑名单

  • /etc/vsftpd/user_list #控制名单(配置文件控制白名单与黑名单)

  • /var/log/xferlog #日志目录

vsftpd匿名用户模式

  1. #安装软件
  2. [root@ftp-server ~]# yum -y install vsftpd
  3. #启动服务
  4. [root@ftp-server ~]# systemctl start vsftpd
  5. #查看服务运行状态
  6. [root@ftp-server ~]# systemctl status vsftpd
  7. #客户端下载连接工具
  8. [root@client ~]# yum -y install ftp lftp
  9. #匿名用户权限介绍
  10. [root@localhost ftp]# vim /etc/vsftpd/vsftpd.conf
  11. ...
  12. 12 anonymous_enable=YES #是否允许匿名用户访问,yes允许,no不允许
  13. 29 #anon_upload_enable=YES #是否允许匿名用户上传,yes允许,no不允许
  14. 33 #anon_mkdir_write_enable=YES #是否允许匿名用户创建目录,yes允许,no不允许
  15. ...
  16. anon_other_write_enable=yes #是否允许匿名用户写权限,yes允许,no不允许(手动添加)

vsftpd本地用户模式

  1. #创建本地用户
  2. [root@localhost ~]# useradd ftpuser
  3. [root@localhost ~]# passwd ftpuser
  4. #修改主配置文件
  5. [root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
  6. ...
  7. 12 anonymous_enable=NO #关闭匿名用户访问
  8. 16 local_enable=YES #是否允许本地用户访问,yes允许,no不允许
  9. 19 write_enable=YES #是否允许本地用户有写权限,yes允许,no不允许
  10. 23 local_umask=022 #本地用户上传文件默认权限为755
  11. 37 dirmessage_enable=YES #当用户第一次进入新目录时显示消息(了解)
  12. 40 xferlog_enable=YES #启动xferlog日志记录,该文件记录传输数据
  13. 53 #xferlog_file=/var/log/xferlog #日志文件位置,需删除注释
  14. 43 connect_from_port_20=YES #启用数据传输端口
  15. 49 #chown_username=whoever #改变上传文件的属主与属组
  16. 60 #idle_session_timeout=600 #客户端连接超时时间
  17. 63 #data_connection_timeout=120 #数据连接超时时间
  18. 101 chroot_local_user=YES #是否允许本地用户切换目录,yes不允许,no允许
  19. 115 listen=NO #是否开启监听IPV4的连接,默认没开启,改为yes
  20. 126 pam_service_name=vsftpd #启用pam认证的文件名称,路径为/etc/pam.d/vsftpd
  21. 127 userlist_enable=YES #是否启用控制名单文件,yes启用,no不启用,文件为/etc/vsftpd/user_list,如果启用控制名单功能,需要指定该文件为黑名单|白名单
  22. 128 userlist_deny=no #yes拒绝user_list文件中用户登录ftp服务器(黑名单),no允许登录(白名单)
  23. max_clients= #限制最大并发连接数量

NFS网络文件系统

  • NFS(Network File System)网络文件系统 , 是一种基于TCP/UDP传输协议的文件共享服务

  • NFS基于C/S架构,服务端启用协议将文件共享到网络上,然后允许本地NFS客户端通过网络挂载服务端共享的文件。

  • NFS基于RPC 远程过程调用机制, 支持在异构系统之间数据的传送 , RPC提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作

  • NFS协议:端口号 2049

  • 软件包:nfs-utils

  • 服务名:nfs

  • 配置文件:/etc/exports

  • RPC协议:端口号 111

  • 软件包:rpcbind

  • 服务名:rpcbind

  • NFS服务端配置

  1. #安装nfs服务端软件包
  2. [root@localhost ~]# yum -y install nfs-utils
  3. #启动nfs服务
  4. [root@localhost ~]# systemctl start nfs
  5. [root@localhost ~]# systemctl enable nfs
  6. #查看服务端口信息
  7. [root@localhost ~]# ss -anptul | grep 2049
  8. udp UNCONN 0 0 *:2049 *:*
  9. udp UNCONN 0 0 :::2049 :::*
  10. tcp LISTEN 0 64 *:2049 *:*
  11. tcp LISTEN 0 64 :::2049 :::*
  12. #查看RPC服务端口信息
  13. [root@localhost ~]# ss -anptul | grep rpcbind
  14. udp UNCONN 0 0 *:111
  15. tcp LISTEN 0 128 *:111
  16. #创建共享目录
  17. [root@localhost ~]# mkdir /upload
  18. #修改nfs主配置文件:/etc/exports
  19. [root@localhost ~]# vim /etc/exports
  20. /upload 192.168.0.27(rw) 192.168.0.28(ro)
  21. /test 192.168.0.0/24(rw) #共享给指定网段
  22. 共享文件夹路径 客户机地址(权限) 客户机地址(权限)
  23. #重启nfs服务
  24. [root@localhost ~]# systemctl restart nfs

客户端访问NFS

  1. #列出有哪些NFS共享资源:showmount -e 服务器地址,如果客户端没有该命令需安装nfs-utils
  2. [root@client ~]# showmount -e 192.168.0.26
  3. Export list for 192.168.0.26:
  4. /upload 192.168.0.28,192.168.0.27
  5. #手动挂载NFS共享:mount
  6. [root@client ~]# mkdir /opt/upload
  7. [root@client ~]# mount 192.168.0.26:/upload /opt/upload
  8. 服务器地址:文件夹路径 挂载点
  9. [root@client ~]# df -h
  10. 文件系统 容量 已用 可用 已用% 挂载点
  11. ...
  12. 192.168.0.26:/upload 17G 1.2G 16G 7% /opt/upload
  13. #客户端验证是否可以是否共享目录
  14. [root@client ~]# cd /opt/upload/
  15. [root@client upload]# touch xx.txt
  16. touch: 无法创建"xx.txt": 权限不够
  17. #解释:默认客户端是以nfs用户身份访问远端的nfs服务器,如果nfs服务端共享的目录属主为root用户,那客户端默认是没有写权限
  18. #服务端开放允许以root身份访问
  19. [root@localhost ~]# vim /etc/exports
  20. /upload 192.168.0.27(no_root_squash,rw) 192.168.0.28(ro)
  21. 解释:no_root_squash 不挤压root用户身份(允许以root身份访问)
  22. [root@localhost ~]# systemctl restart nfs
  23. #客户端验证
  24. [root@client upload]# touch xx.txt
  25. [root@client upload]# ls
  26. xx.txt
  27. #为普通用户授权访问nfs共享目录(通过ACL实现,nfs通过用户UID辨别用户身份)
  28. [root@localhost ~]# setfacl -m u:lisi:rwx /upload
  29. #设置SBIT权限
  30. [root@localhost ~]# chmod o+t /upload/
  31. #客户端lisi用户验证授权
  32. [lisi@client upload]$ touch lisi.txt
  33. [lisi@client upload]$ ls
  34. lisi.txt xx.txt
  35. [lisi@client upload]$ rm -rf xx.txt
  36. rm: 无法删除"xx.txt": 不允许的操作
  37. #客户端实现开机挂载配置:/etc/fstab
  38. [root@localhost]# vim /etc/fstab
  39. 192.168.0.220:/xxx /mnt/xxx nfs defaults,_netdev 0 0
  40. 服务器地址:文件夹路径 挂载点 文件系统 defaults,_netdev 0 0
  41. #解释:_netdev:指定nfs是网络设备

RHCE_DAY07的更多相关文章

随机推荐

  1. excel函数提取身份证出生日期,分离日期时间的日期和时间

    1.提取身份证出生日期 =1*TEXT(MID(H13,7,8),"0-00-00")用MID函数提取表示日期的位数,再用text函数转换为格式1998-6-21格式的文本,再通过 ...

  2. DDoS攻击的工具介绍

    1.低轨道离子加农炮(LOIC) 1.1 什么是低轨道离子加农炮(LOIC)? 低轨道离子加农炮是通常用于发起DoS和DDoS攻击的工具.它最初是由Praetox Technology作为网络压力测试 ...

  3. Redis计数信号量

    计数信号量是一种锁,它可以让用户限制一项资源最多能够同时被多少个进程访问,通常用于限定能够同时使用的资源数量.你可以把Redis分布式锁里面创建的锁看作是只能被一个进程访问的信号量. 计数信号量和其他 ...

  4. 10.ODBC创建/读取Excel QT4

    看到一篇MFC的参考链接:https://blog.csdn.net/u012319493/article/details/50561046 改用QT的函数即可 创建Excel //创建Excel v ...

  5. mac 中一些日常小问题与快捷键

    1.备忘录中的中英文符号问题 比如:在备忘录中使用英文符号时,总是会被自动的修改为中文符号 解决方法:系统偏好设置-键盘-文本,去选"使用智能引号和存折号" p.p1 { marg ...

  6. Linux 命令行通配符及转义符的实现

    我们想对一类文件批量操作,例如批量查看硬盘文件属性,那么正常命令会是: [root@linuxprobe ~]# ls /dev/sda [root@linuxprobe ~]# ls /dev/sd ...

  7. Exception 和Error异常大部分人都犯过的错。

    先看再点赞,给自己一点思考的时间,如果对自己有帮助,微信搜索[程序职场]关注这个执着的职场程序员. 我有什么:职场规划指导,技能提升方法,讲不完的职场故事,个人成长经验. 1,简介 Exception ...

  8. angular小记

    declarations:包装组件或指令等 providers:依赖注入 imports:导入其他模块 bootstrap:设置根组件 exports:导出组件或指令等 app.component.t ...

  9. Entity Framework Core中的数据迁移命令

    使用程序包管理控制台输入命令. 数据迁移命令: Add-Migration  对比当前数据库和模型的差异,生成相应的代码,使数据库和模型匹配的. Remove-Migration 删除上次的迁移 Sc ...

  10. Djiango 连接数据库mysql 的基本数据操作

    1.单表操作 (1) .增加操作 1 # 增加操作 2 def add_person(request): 3 # 1.使用save() 方法 4 # person_obj = models.Perso ...