当前位置:   article > 正文

云计算 3月11号 (NFS远程共享存储及vsftpd配置)

云计算 3月11号 (NFS远程共享存储及vsftpd配置)
构建NFS远程共享存储
一、NFS介绍
文件系统级别共享(是NAS存储) ---------  已经做好了格式化,可以直接用。 速度慢比如:nfs,samba
=====================================================
NFS 
NFS:Network File System 网络文件系统,NFS 和其他文件系统一样,是在 Linux 内核中实现的,因此 NFS 很难做到与 Windows 兼容。NFS 共享出的文件系统会被客户端识别为一个文件系统,客户端可以直接挂载并使用。
​
#NFS 文件系统仅支持基于 IP 的用户访问控制,NFS 的客户端主要为Linux。
因为NFS有很多功能,不同的功能需要使用不同的端口。因此NFS无法固定端口。而RPC会记录NFS端口的信息,这样就能够通过RPC实现服务端和客户端的RPC来沟通端口信息。
​
那RPC和NFS之间又是如何之间相互通讯的?
​
首先当NFS启动后,就会随机的使用一些端口,然后NFS就会向RPC去注册这些端口。RPC就会记录下这些端口。并且RPC会开启111端口,等待客户端RPC的请求,如果客户端有请求,那服务端的RPC就会将记录的NFS端口信息告知客户端。
实验环境准备两台机器
支持多节点同时挂载以及并发写入
服务端:nfs-server 192.168.246.160
客户端:web1 192.168.246.161
centos7(服务端和客户端都关闭防火墙和selinux内核防火墙)
#systemctl stop firewalld
#systemctl disable firewalld    
#setenforce 0
二、实战
NFS-server操作

  1. [root@nfs-server ~]# yum -y install rpcbind #安装rpc协议的包
  2. [root@nfs-server ~]# yum -y install nfs-utils #安装nfs服务。
  3. 启动服务
  4. [root@nfs-server ~]# systemctl start nfs
  5. [root@nfs-server ~]# systemctl start rpcbind
  6. [root@nfs-server ~]# mkdir /nfs-dir #创建存储目录
  7. [root@nfs-server ~]# echo "nfs-test" >> /nfs-dir/index.html #制作test文件
  8. [root@nfs-server ~]# vim /etc/exports #编辑共享文件
  9. /nfs-dir 192.168.246.0/24(rw,no_root_squash,sync)
可选参数注释:
ro:只读
rw:读写
*:表示共享给所有网段。
sync:所有数据在请求时写入共享
root_squash: 对于使用分享目录的使用者如果是root用户,那么这个使用者的权限将被压缩成为匿名使用者,只读权限。
no_root_squash:使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限。

  1. [root@nfs-server ~]# systemctl restart nfs-server #重启服务。
  2. [root@nfs-server ~]# systemctl enable nfs-server #制作开机启动
web1  客户端操作

  1. [root@web1 ~]# yum -y install rpcbind
  2. [root@web1 ~]# yum -y install nfs-utils
  3. [root@web1 ~]# mkdir /qf #创建挂载点
  4. [root@web1 ~]# mount -t nfs 192.168.246.160:/nfs-dir /qf #挂载
  5. -t:指定文件系统类型
  6. [root@web1 ~]# df -Th
  7. Filesystem Type Size Used Avail Use% Mounted on
  8. /dev/mapper/centos-root xfs 17G 1.1G 16G 7% /
  9. tmpfs tmpfs 98M 0 98M 0% /run/user/0
  10. 192.168.246.160:/nfs-dir nfs4 17G 1.4G 16G 8% /qf
  11. [root@web1 ~]# ls /qf
  12. index.html
  13. [root@web1 ~]# umount /qf #取消挂载
​
​
制作开机挂载
  1. [root@client.qfedu.com ~]# vim /etc/fstab
  2. 192.168.246.160:/nfs-dir /qf nfs defaults 0 0
  3. [root@client.qfedu.com ~]# mount -a
ftp及lftp
  • 文件传输协议(File Transfer Protocol,FTP),基于该协议FTP客户端与服务端可以实现共享文件、上传文件、下载、删除文件。FTP服务器端可以同时提供给多人共享使用。

  • FTP服务是Client/Server(简称C/S)模式,基于FTP协议实现FTP文件对外共享及传输的软件称之为FTP服务器源端,客户端程序基于FTP协议,则称之为FTP客户端,FTP客户端可以向FTP服务器上传、下载文件。

FTP Server
作用:提供文件共享服务,实现上传下载
端口:
21号,建立tcp连接  默认端口
20号:传输数据
一、FTP基础
软件包:        vsftpd
FTP端口:       控制端口:21/tcp 
配置文件:       /etc/vsftpd/vsftpd.conf
1. ftp主动模式
ftp主动模式:客户端开启一个端口N(>1023)向服务端的21端口,建立连接,同时开启一个N+1,告诉服务端,我监听的是N+1端口,服务端接到请求之后,用自己的20端口连接到客户端的N+1端口,进行传输
​
21端口建立连接
20端口传输数据
2. ftp被动模式
ftp被动模式:客户端同时开启两个端口(1024,1025),一个端口(1024)跟服务端的21端口建立连接,并请求,大哥,我连上了,你再开一个端口呗。服务端接到请求之后,随机会开启一个端口(1027)并告诉客户端我开启的是1027端口,客户端用另一个端口(1025)与服务端的(1027)端口进行连接,传输数据
二、Vsftp 服务器简介
  • 非常安全的FTP服务进程(Very Secure FTP daemon,Vsftpd),Vsftpd在Unix/Linux发行版中最主流的FTP服务器程序,优点小巧轻快,安全易用、稳定高效、满足企业跨部门、多用户的使用(1000用户)等。

三、vsftpd配置
1. 安装vsftpd[ftp服务端]
FTP Server(服务端)
实验环境--准备两台机器
关闭防火墙和selinux
  1. #systemctl stop firewalld
  2. #systemctl disable firewalld
  3. #setenforce 0
  4. =========================================
  5. ftp-server 192.168.246.160
  6. client 192.168.246.161
  7. ==========================================
  8. [root@ftp-server ~]# yum install -y vsftpd
  9. [root@ftp-server ~]# systemctl start vsftpd
  10. [root@ftp-server ~]# systemctl enable vsftpd
#FTP默认共享目录:/var/ftp
  1. [root@localhost ~]# mkdir /var/ftp/upload #创建自己的共享目录
  2. [root@ftp-server ~]# touch /var/ftp/upload/test.txt #创建文件到共享目录
  3. [root@ftp-server ~]# cd /var/ftp/
  4. [root@ftp-server ftp]# ls
  5. pub upload
  6. [root@ftp-server ftp]# chown ftp.ftp * -R #修改根目录的属主与属组
  7. [root@ftp-server ftp]# ll
  8. total 0
  9. drwxr-xr-x. 2 ftp ftp 22 Aug 3 03:15 pub
  10. drwxr-xr-x. 2 ftp ftp 22 Aug 27 03:15 upload
  • 重点:改变根目录的属主,如果不改变的话,只能访问,其他权限不能生效。因为我们是以ftp用户的身份访问的,而默认的属主属组是root。

  • 注意:

- 修改完配置之后需要重启完服务才能生效
- 还需要从新从客户端登陆,否则修改后的配置看不到效果。
2. 编辑配置文件
[root@ftp-server ~]# vi /etc/vsftpd/vsftpd.conf ----找到29行将下面的注释取消
30 anon_umask=022  #添加匿名用户上传下载目录权限掩码
34 anon_other_write_enable=YES

[root@ftp-server ~]# systemctl restart vsftpd
FTP Clinet(客户端)
关闭防火墙和selinux
  1. [root@client ~]# yum -y install lftp #安装客户端
  2. get命令(下载,首先要开启下载功能)
  3. [root@client ~]# lftp 192.168.246.160
  4. lftp 192.168.246.160:~> ls
  5. drwxr-xr-x 2 0 0 6 Oct 30 2018 pub
  6. drwxr-xr-x 2 14 50 6 Oct 30 2018 upload
  7. lftp 192.168.246.160:/> cd upload/
  8. lftp 192.168.246.160:/upload> ls
  9. -rw-r--r-- 1 14 50 0 Aug 02 19:14 test.txt
  10. lftp 192.168.246.160:/upload> get test.txt #下载
  11. lftp 192.168.246.160:/upload> exit
  12. [root@client ~]# ls #会下载到当前目录
  13. anaconda-ks.cfg test.txt
  14. [root@client ~]# lftp 192.168.246.160
  15. lftp 192.168.246.160:/upload> mkdir dir #也可以创建目录
  16. mkdir ok, `dir' created
  17. put命令(上传命令,上传之前请在服务端进行配置,将上传功能打开)
  18. [root@client ~]# touch a.txt #创建测试文件
  19. [root@client ~]# mkdir /test/ #创建测试目录
  20. [root@client ~]# touch /test/b.txt #在测试目录下面创建测试文件
  21. [root@client ~]# lftp 192.168.246.160
  22. lftp 192.168.246.160:~> cd upload/
  23. lftp 192.168.246.160:/upload> put /root/a.txt #上传文件
  24. lftp 192.168.246.160:/upload> ls
  25. -rw------- 1 14 50 0 Nov 16 12:14 a.txt
  26. drwx------ 2 14 50 6 Aug 02 19:17 dir
  27. lftp 192.168.246.160:/upload> mirror -R /root/test/ #上传目录以及目录中的子文件
  28. Total: 1 directory, 1 file, 0 symlinks
  29. New: 1 file, 0 symlinks
  30. lftp 192.168.246.160:/upload> ls
  31. drwx------ 2 14 50 23 Nov 16 12:18 test
  32. -rw------- 1 14 50 0 Nov 16 12:14 upload.txt
  33. lftp 192.168.246.160:/upload> mirror test/ #下载目录
  34. Total: 1 directory, 1 file, 0 symlinks
  35. New: 1 file, 0 symlinks
  36. lftp 192.168.246.160:/upload> exit
  37. [root@cllient ~]# ls
  38. anaconda-ks.cfg a.txt test
  39. [root@client ~]# cd test/
  40. [root@client test]# ls
  41. b.txt
3. ftp配置本地用户登录

创建测试用户

创建 zhangsan、lisi  密码都设置为 “123456”

  1. [root@ftp-server ~]# useradd zhangsan
  2. [root@ftp-server ~]# useradd lisi
  3. [root@ftp-server ~]# echo '123456' | passwd --stdin zhangsan #设置密码
  4. Changing password for user zhangsan.
  5. passwd: all authentication tokens updated successfully.
  6. [root@ftp-server ~]# echo '123456' | passwd --stdin lisi
  7. Changing password for user lisi.
  8. passwd: all authentication tokens updated successfully.

配置本地用户ftp配置文件

  1. [root@ftp-server ~]# vim /etc/vsftpd/vsftpd.conf ---添加注释并修改
  2. anonymous_enable=NO #将允许匿名登录关闭
  3. #anon_umask=022 #匿名用户所上传文件的权限掩码
  4. #anon_upload_enable=YES #允许匿名用户上传文件
  5. #anon_mkdir_write_enable=YES #允许匿名用户创建目录
  6. #anon_other_write_enable=YES #是否允许匿名用户有其他写入权(改名,删除,覆盖)
  7. 103 chroot_list_enable=YES #启用限制登陆用户在主目录里面
  8. 104 # (default follows)
  9. 105 chroot_list_file=/etc/vsftpd/chroot_list #限制登陆的用户在这个文件列表中,一行一个用户
  10. 106 allow_writeable_chroot=YES #允许限制的用户对目录有写权限
  11. 新添加
  12. local_root=/home/zhangsan # 设置本地用户的FTP根目录,一般为用户的家目录
  13. local_max_rate=0 # 限制最大传输速率(字节/秒)0为无限制

重启vsftpd

  1. [root@ftp-server ~]# vim /etc/vsftpd/chroot_list
  2. zhangsan
  3. [root@ftp-server ~]# systemctl restart vsftpd
四、客户端操作
  1. [root@ftp-client ~]# lftp 192.168.153.137 -u zhangsan
  2. Password:
  3. lftp zhangsan@192.168.153.137:~> ls
  4. lftp zhangsan@192.168.153.137:~> mkdir aaa
  5. mkdir ok, `aaa' created
  6. lftp zhangsan@192.168.153.137:~> ls
  7. drwxr-xr-x 2 1000 1000 6 Aug 02 20:55 aaa
  8. lftp zhangsan@192.168.153.137:~> put /root/test.txt
  9. lftp zhangsan@192.168.153.137:~> ls
  10. drwxr-xr-x 2 1000 1000 6 Aug 02 20:55 aaa
  11. -rw-r--r-- 1 1000 1000 0 Aug 02 20:59 test.txt
服务器端查看
  1. [root@ftp-server ~]# cd /home/zhangsan/
  2. [root@ftp-server zhangsan]# ls
  3. aaa test.txt
  4. [root@ftp-server zhangsan]# ll
  5. total 0
  6. drwxr-xr-x. 2 zhangsan zhangsan 6 Aug 3 04:55 aaa
  7. -rw-r--r--. 1 zhangsan zhangsan 0 Aug 3 04:59 test.txt
Linux禁止root用户远程登陆
认识sshd_congfig配置文件
[root@testpm ~]# vim /etc/ssh/sshd_config
​
#Port 22  #监听端口,默认监听22端口   【默认可修改】
#AddressFamily any  #IPV4和IPV6协议家族用哪个,any表示二者均有
#ListenAddress 0.0.0.0 #指明监控的地址,0.0.0.0表示本机的所有地址  【默认可修改】
#ListenAddress ::  #指明监听的IPV6的所有地址格式
​
#LogLevel INFO    #日志记录级别,默认为info
#LoginGraceTime 2m   #登录的宽限时间,默认2分钟没有输入密码,则自动断开连接
#PermitRootLogin yes #是否允许管理员直接登录,'yes'表示允许,实际生产中建议修改为no
#MaxAuthTries 6  #最大认证尝试次数,最多可以尝试6次输入密码超过之后断开连接
#MaxSessions 10  #最大允许保持多少个连接。默认值是 10
​
#PubkeyAuthentication yes  #是否开启公钥验证
禁止root用户远程登录
[root@testpm ~]# vim /etc/ssh/sshd_config
37 #LoginGraceTime 2m
38 #PermitRootLogin yes  #默认为允许root用户远程登陆
39 #StrictModes yes
进行修改如下
[root@testpm ~]# vim /etc/ssh/sshd_config
37 #LoginGraceTime 2m
38 PermitRootLogin no #将注释打开并将yes修改为no
39 #StrictModes yes
保存退出并重启sshd服务
[root@testpm ~]# systemctl restart sshd
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/245739
推荐阅读
相关标签
  

闽ICP备14008679号