运维开发宝典021-Linux文件服务器VSftp和NFS
大家好我是云计算磊哥从业20年的IT老鸟。运维培训15年总结了一套从入门到精通的全运维开发宝典手册。准备用300天时间写一套博文手把手从安装软件讲起从行业到产品从过去到未来从理论到操作从视频到文档工具一站式。从零基础入门到20k运维开发工程师岗位诸多就业问题。多方位全方面的给你讲清楚云计算这个行业该如何做。关注我。后续更精彩。本文讲了Vsftpd 文件传输服务的搭建、配置、客户端使用及 FTP 模式区别以及NFS 网络文件系统在 Linux 间实现目录共享、多 Web 节点统一存储的配置与实战。Vsftpd_NFSFTP Server1.1 简介vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字它可以运行在诸如 Linux, BSD, Solaris, HP-UX 以及 IRIX 上面。它支持很多其他的 FTP 服务器不支持的特征。此外本文还介绍了FTP基本原理以及FTP用户管理方面的基础知识。1.2 基础FTP: 文件传输协议软件包: vsftpdFTP端口: 控制端口 command 21/tcp数据端口 data 20/tcp (主动模式)配置文件: /etc/vsftpd/vsftpd.conf主目录“/var/ftp/”FTP程序分享一个本机目录。1.3 FTP Server 默认配置centos7# cat /etc/redhat-releaseCentOS Linux release7.2.1511(Core)# yum -y install vsftpd# touch /var/ftp/abc.txt# systemctl start vsftpd# systemctl enable vsftpd默认firewalld/SELinux已关闭如果未关闭:# firewall-cmd --permanent --add-serviceftp# firewall-cmd --reload# sed -ri /^SELINUX/cSELINUXdisabled /etc/selinux/config# setenforce 01.4 FTP Clinet:LinuxFTP客户端程序1:lftplftp[rootlocalhost ~]# yum -y install lftp[rootlocalhost ~]# lftp 服务器的IP地址lftp zhufo.top:~lsdrwxr-xr-x2004096Mar312016pub -rw-r--r--1000Nov2203:53 abc.txt lftp zhufo.top:/get abc.txt lftp zhufo.top:/mirror pubLinuxFTP客户端程序2:wget[rootlocalhost ~]# wget --help |less[rootlocalhost ~]# wget ftp://172.16.8.100/kvm-manager-centos[rootlocalhost ~]# wget ftp://172.16.8.100/kvm-manager-centos -P /tmp/[rootlocalhost ~]# wget ftp://172.16.8.100/kvm-manager-centos -O /tmp/a.sh[rootlocalhost ~]# wget http://nginx.org/download/nginx-1.10.2.tar.gz[rootlocalhost ~]# wget -m ftp://zhufo.top/softfirefox,IEfirefox,IE1打开浏览器2输入“ftp://服务器IP地址 默认使用匿名用户 ftp访问HOME为/var/ftp默认仅能下载文件 系统用户: aliceHOME/home/alice默认可下载及上传 lftp alice192.168.122.1521.4 常见基本配置 [了解]1. 启动和禁用匿名账户 # vim /etc/vsftpd/vsftpd.conf anonymous_enableYES //是否允许匿名用户登录ftp 2.启用和禁用本地用户 # vim /etc/vsftpd/vsftpd.conf local_enableYES //是否允许本地用户登录alice 3.启用和禁用上传功能 # vim /etc/vsftpd/vsftpd.conf write_enableYES //是否允许写全局 4.设置新建文件默认权限 # vim /etc/vsftpd/vsftpd.conf local_umask022 //控制本地用户上传文件的默认权限,umask表示666要减掉的权限默认没有执行。 anon_umask077 //控制匿名用户上传文件的默认权限 注意另外6条配置 5.锁定本地用户主目录 # vim /etc/vsftpd/vsftpd.conf chroot_local_userYES #chmod -w /home/alice //用户对家目录要减掉W权限。 6.自定义用户主目录 # vim /etc/vsftpd/vsftpd.conf local_root/ftproot //指定本地用户访问的root目录 anon_root/anonroot //指定匿名用户访问的root目录 7.设置下载速度 # vim /etc/vsftpd/vsftpd.conf anon_max_rate500000 //匿名用户限速 local_max_rate80000 //本地用户限速 max_clients500 //ftp最大连接数 max_per_ip2 //单个IP最大连接数线程数 8.降低本地FTP用户权限系统用户默认既可以通过控制台登录系统。又可以通过网络ftp访问服务器。 为了安全起见可以降低ftp用户权限。 vim /etc/passwd alice:x:1000:1000::/home/alice:/bin/bash 改为 alice:x:1000:1000::/home/alice:/sbin/nologin1.5 案例目标:通过FTP搭建YUM源服务器服务器挂载centos镜像[rootlocalhost ~]#yum install vsftpd[rootlocalhost ~]#systemctl start vsftpd[rootlocalhost ~]#systemctl stop firewalld[rootlocalhost ~]# mkdir /var/ftp/centos7[rootlocalhost ~]# mount /dev/sr0 /var/ftp/centos7[rootlocalhost ~]# df -hT/dev/sr0 iso96604.3G4.3G0100% /var/ftp/centos7[rootlocalhost ~]# vim /etc/vsftpd/vsftpd.confanon_root/var/ftp/客户机[rootclient ~]# mv /etc/yum.repos.d/* /tmp //备份默认源[rootclient ~]# vim /etc/yum.repos.d/centos7.repo //指向基础源[my-centos7]namemy-centos7baseurlftp://x.x.x.x/centos7u2gpgcheck0[rootclient ~]# yum repolist //看到YUM即可。1.6 扩展FTP两种模式的区别1PORT主动模式所谓主动模式指的是FTP服务器“主动”去连接客户端的数据端口来传输数据其过程具体来说就是客户端从一个任意的非特权端口NN1024连接到FTP服务器的命令端口即tcp 21端口紧接着客户端开始监听端口N1并发送FTP命令“port N1”到FTP服务器。然后服务器会从它自己的数据端口20“主动”连接到客户端指定的数据端口N1这样客户端就可以和ftp服务器建立数据传输通道了。2PASV被动模式所谓被动模式指的是FTP服务器“被动”等待客户端来连接自己的数据端口其过程具体是当开启一个FTP连接时客户端打开两个任意的非特权本地端口N 1024和N1。第一个端口连接服务器的21端口但与主动方式的FTP不同客户端不会提交PORT命令并允许服务器来回连它的数据端口而是提交PASV命令。这样做的结果是服务器会开启一个任意的非特权端口P 1024并发送PORT P命令给客户端。然后客户端发起从本地端口N1到服务器的端口P的连接用来传送数据。注意此模式下的FTP服务器不需要开启tcp 20端口了两种模式的比较1PORT主动模式模式只要开启服务器的21和20端口而PASV被动模式需要开启服务器大于1024所有tcp端口和21端口。2从网络安全的角度来看的话似乎ftp PORT模式更安全而ftp PASV更不安全那么为什么RFC要在ftp PORT基础再制定一个ftp PASV模式呢其实RFC制定ftp PASV模式的主要目的是为了数据传输安全角度出发的因为ftp port使用固定20端口进行传输数据那么作为黑客很容使用sniffer等探嗅器抓取ftp数据这样一来通过ftp PORT模式传输数据很容易被黑客窃取因此使用PASV方式来架设ftp server是最安全绝佳方案。因此如果只是简单的为了文件共享完全可以禁用PASV模式解除开放大量端口的威胁同时也为防火墙的设置带来便利。 不幸的是FTP工具或者浏览器默认使用的都是PASV模式连接FTP服务器因此必须要使vsftpd在开启了防火墙的情况下也能够支持PASV模式进行数据访问。NFS1.1 名词解释NFSNetwork File System 网络文件系统Linux/Unix系统之间共享文件的一种协议NFS 的客户端主要为Linux支持多节点同时挂载以及并发写入1.2 作用提供文件共享服务为集群中的 Web Server 配置后端存储1.3 案例环境nas192.168.122.241 web1192.168.122.150 web2192.168.122.8 web3192.168.122.194 nas web1 web2 web3# sed -ri /^SELINUX/cSELINUXdisabled /etc/selinux/config# setenforce 0centos7# systemctl stop firewalld# systemctl disable firewalldnas存储端[rootnas ~]# yum -y install nfs-utils[rootnas ~]# mkdir /webdata //存储网站代码[rootnas ~]# echo nfs test... /webdata/index.html[rootnas ~]# vim /etc/exports/webdata192.168.122.0/24(rw)[rootnas ~]# systemctl start nfs-server[rootnas ~]# systemctl enable nfs-server[rootnas ~]# exportfs -v/webdata192.168.122.0/24(rw,wdelay,no_root_squash,no_subtree_check,secsys,rw,secure,no_root_squash,no_all_squash)注释[rootnas ~]# vim /etc/exports/webdata192.168.122.0/24(rw,sync,no_root_squash)//不压制root(当client端使用root挂载时也有root权限)//默认是压制root及时你用root登录也没有root权限因为被压制为了安全。web1 web2 web3 客户端二、web1 web2 web3 客户端 以web1为例[rootweb1 ~]# yum -y install nfs-utils httpd[rootweb1 ~]# systemctl start httpd[rootweb1 ~]# systemctl enable httpd1. 查看存储端共享[可选][rootweb1 ~]# showmount -e 192.168.122.241 // 查询NFS服务器可用目录Export listfor192.168.122.241: /webdata192.168.122.0/242. 手动挂载[可选][rootweb1 ~]# mount -t nfs 192.168.122.241:/webdata /var/www/html/[rootweb1 ~]# umount /var/www/html/3. 自动挂载到网站主目录[rootweb1 ~]# vim /etc/fstab192.168.122.241:/webdata /var/www/html nfs defaults00[rootweb1 ~]# mount -a4. 查看挂载[rootweb1 ~]# df192.168.122.152:/webdata7923136692416682156810% /var/www/html[rootweb1 ~]# ls /var/www/html/index.html5. web2 web3同上注释如果希望web能修改NFS中的内容请取消压制root重启nas服务重新挂载。测试网站访问# firefox 192.168.122.85# firefox 192.168.122.111# firefox 192.168.122.166配套视频https://edu.csdn.net/course/detail/40861