第十四章、NFS服务搭建与配置

14.1 NFS介绍

14.2 NFS服务端安装配置

14.3 NFS配置选项

14.4 exportfs命令

14.5 NFS客户端问题

15.1 FTP介绍

15.2/15.3 使用vsftpd搭建ftp

15.4 xshell使用xftp传输文件

15.5 使用pure-ftpd搭建ftp服务

15.6扩展

14.1 NFS介绍

#NFS文件系统是基于网络层面,需要通过网络实现数据的同步

#

#NFS服务端给NFS客户端提供服务需要借助RPC协议rpcbind服务(CentOS6开始的叫法,CentOS5及之前叫portmap服务),实现通信

#NFS不监听任何端口;最终实现TCP/IP通信的过程是由RPC监听111端口实现的

NFS传输过程:先由服务端的NFS服务在RPC服务商注册一个端口,然后服务端的RPC服务通过TCP/IP将注册的端口号告知客户端的RPC服务,最后NFS客户端通过与NFS服务端注册的端口进行通信,实现数据传输。

14.2 NFS服务端安装配置

给服务端安装NFS

1、下载nfs-utils安装包

yum install -y nfs-utils rpcbind

2、修改exports文件,增加一行

vim /etc/exports 

#加入如下内容

/home/nfstestdir     192.168.233.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

#设置分享目录、分享ip或者ip段,目录与ip用空格隔开

3、创建分享目录,加上777权限

mkdir /home/nfstestdir

chmod 777 /home/nfstestdir

4、启动并设置开机自启rpcbind服务和nfs服务

• systemctl start rpcbind

• systemctl start nfs

• systemctl enable rpcbind

• systemctl enable nfs

14.3 NFS配置选项

配置exports文件增加行内小括号可加的参数说明:

#多个参数间用","逗号隔开

rw 读写

ro 只读

sync 同步模式,内存数据实时写入磁盘

async 非同步模式

no_root_squash 客户端挂载NFS共享目录后,root用户不受约束,权限很大

root_squash 与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户

all_squash 客户端上所有用户在使用NFS共享目录时都被限定为一个普通用户

anonuid/anongid 和上面几个选项搭配使用,定义被限定用户的uid和gid

客户端挂载nfs

1、下载nfs-utils包

yum install -y nfs-utils

2、 查看远程服务端共享情况(共享目录和允许访问的ip)

showmount -e 192.168.233.150

[root@xinlinux-01 ~]# showmount -e 192.168.233.150

Export list for 192.168.233.150:

/home/nfstestdir 192.168.233.0/24

3、挂载nfs

mount -t nfs 192.168.233.150:/home/nfstestdir /mnt

#mount -t nfs  远程ip:共享目录  挂载目录

4、查看挂载是否成功

df -h

[root@xinlinux-01 ~]# mount -t nfs 192.168.233.150:/home/nfstestdir /mnt

[root@xinlinux-01 ~]# df -h

文件系统                          容量  已用  可用 已用% 挂载点

/dev/sda3                          28G  1.2G   27G    5% /

devtmpfs                          481M     0  481M    0% /dev

tmpfs                             492M     0  492M    0% /dev/shm

tmpfs                             492M  7.4M  485M    2% /run

tmpfs                             492M     0  492M    0% /sys/fs/cgroup

/dev/sda1                         197M  112M   85M   57% /boot

tmpfs                              99M     0   99M    0% /run/user/0

192.168.233.150:/home/nfstestdir   28G  4.5G   24G   16% /mnt

测试:

• touch /mnt/123.txt

ls -l /mnt/123.txt 

#可以看到文件的属主和属组都为1000

id  用户名   #查看用户信息(uid,gid)

[root@xinlinux-01 ~]# ls -l /mnt/123.txt

-rw-r--r-- 1 user1 user1 0 10月  2 09:50 /mnt/123.txt

[root@xinlinux-01 ~]# id user1

uid=1000(user1) gid=1000(user1) 组=1000(user1)

#报错

[root@xinlinux-01 ~]# showmount -e 192.168.233.150

clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

#无法与服务端111端口通信

两个可能:

1、服务端的rpc服务没开启;

2、防火墙没关闭;

两边同时关闭firewalld和SEXlinux

systemctl  stop  firewalld

setenforce  0

14.4 exportfs命令

使用场景:当需要变更(更改、增加或删除)共享目录,要先更改配置文件,然后重启nfs服务;但是这样会让客户端的nfs挂起状态,无法正常访问,进程杀不死,重启nfs也重启不了(所以要重启服务端的nfs,要先将客户端挂载的nfs卸载umount)

exportfs命令(不用重启nfs也能使配置文件生效)

• 常用选项

-a 全部挂载或者全部卸载

-r 重新挂载

-u 卸载某一个目录

-v 显示共享目录

测试:服务端创建新的共享目录tmp,客户端创建xinlinux目录作为tmp目录的挂载目录

• 以下操作在服务端上

vim /etc/exports 

#增加共享目录/tmp/

/tmp/ 192.168.233.0/24(rw,sync,no_root_squash)

exportfs -arv 

#不用重启nfs服务,配置文件就会生效

[root@xinlinux-03 ~]# exportfs -arv

exporting 192.168.233.0/24:/tmp

exporting 192.168.233.0/24:/home/nfstestdir

• 以下操作在客户端

mkdir /xinlinux

• mount -t nfs   192.168.233.150:/tmp /xinlinux

• touch /xinlinux/test.txt

• ls -l  /xinlinux/test.txt

#发现所有者和所属组都是root,因为配置文件的时候选择了no_root_squash,root用户不受限制

[root@xinlinux-01 ~]# mount -t nfs 192.168.233.150:/tmp/   /xinlinux/

[root@xinlinux-01 ~]# touch /xinlinux/test.txt

[root@xinlinux-01 ~]# ls -l /xinlinux/test.txt

-rw-r--r-- 1 root root 0 10月  2 10:04 /xinlinux/test.txt

14.5 NFS客户端问题

#客户端文件属主属组nobody

NFS 4版本会有问题:

客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、属组为nobody

解决问题两种方案:

1、客户端挂载时加上 -o nfsvers=3    #将nfs版本变成3

先正常挂载,然后重新挂载

mount  -t  nfs  -o nfsvers=3  192.168.233.150:/tmp/   /xinlinux

mount  -t  nfs  -oremount,nfsvers=3  192.168.233.150:/tmp/   /xinlinux

[root@xinlinux-01 ~]# umount /xinlinux

[root@xinlinux-01 ~]# mount  -t  nfs  -o nfsvers=3  192.168.233.150:/tmp/   /xinlinux

[root@xinlinux-01 ~]# mount  -t  nfs  -oremount,nfsvers=3  192.168.233.150:/tmp/  /xinlinux

2、修改/etc/idmapd.conf文件

#客户端和服务端都需要

vim /etc/idmapd.conf 

#把“#Domain = local.domain.edu” 改为 “Domain = xxx.com” (这里的xxx.com,随意定义),然后再重启rpcidmapd服务(重启rpcbind服务即可)

15.1 FTP介绍

FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。

#FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。

#小公司用的多,大企业不用FTP,因为不安全

15.2/15.3 使用vsftpd搭建ftp

#centos上自带vsftpd软件包

搭建ftp

1、下载vsftpd包

yum install -y vsftpd

2、创建virftp虚拟用户

#这个用户不是通过ssh登录,是通过ftp登录到该用户的家目录,为了安全,-s  /sbin/nologin,不能通过ssh登录用户系统

useradd -s /sbin/nologin virftp

3、编辑vsftpd的虚拟用户的密码文件,定义用户的文件密码

vim /etc/vsftpd/vsftpd_login  

#内容如下,奇数行为用户名,偶数行为密码,多个用户就写多行

ftpuser1

123456

4、设置密码文件的权限

chmod 600 /etc/vsftpd/vsftpd_login

5、将文本密码文件转化为计算机能识别的二进制文件

db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

6、创建虚拟用户配置文件所在目录

mkdir /etc/vsftpd/vsftpd_user_conf

7、定义虚拟用户配置文件(文件命名要与用户名保持一致)

cd /etc/vsftpd/vsftpd_user_conf

• vim ftpuser1

#加入如下内容

local_root=/home/virftp/ftpuser1

#定义虚拟用户的家目录

anonymous_enable=NO

#是否允许匿名用户

write_enable=YES

#是否允许可写

local_umask=022

#定义umask值

anon_upload_enable=NO

#是否允许匿名用户可上传

anon_mkdir_write_enable=NO

#是否允许匿名用户创建目录并且可写

idle_session_timeout=600

#连接ftp后空闲时间段后断开连接

data_connection_timeout=120

#数据传输的超时时间

max_clients=10

#最大客户端数量

8、创建虚拟用户家目录

• mkdir  /home/virftp/ftpuser1

• touch /home/virftp/ftpuser1/aming.txt

9、更改家目录所有者,属组权限

• chown -R virftp:virftp /home/virftp

10、定义密码文件存放cd位置

vim /etc/pam.d/vsftpd 

#在最前面加上

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

#CentOS6系统分32位和64位的,要注意是否有lib64(或者32)/security/pam_userdb.so这个认证文件

11、编辑vsftpd主配置文件

vim /etc/vsftpd/vsftpd.conf

#将anonymous_enable=YES 改为 anonymous_enable=NO

#将#anon_upload_enable=YES 改为 anon_upload_enable=NO

#将#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO

•  再增加如下内容

chroot_local_user=YES

guest_enable=YES

guest_username=virftp

virtual_use_local_privs=YES

user_config_dir=/etc/vsftpd/vsftpd_user_conf

allow_writeable_chroot=YES

12、启动vsftpd服务

systemctl start vsftpd   #启动vsftpd服务

netstat  -lntp   #查看ftp监听端口是否启动ftp监听21端口)

Linux客户端测试:

yum install -y lftp       #Linux安装ftp客户端软件

lftp [email protected]

#执行命令ls,看是否正常输出

#若不正常查看日志/var/log/messages和/var/log/secure

windows客户端测试:

# windows下安装filezilla客户端软件,进行测试

15.4 xshell使用xftp传输文件

第一种方案:xshell新建会话,协议改为SFTP,其他的往常改动,然后登陆,输入设置的虚拟用户密码,get到的文件会放会话属性的SFTP-->定义的本地文件夹

第二种方案:xshell借助xftp插件

在xsehll界面按CTRL+ALT+F,打开xftp插件;如果没有下载下载,去r.aminglinux.com下载

#双击、拖移即可下载文件

15.5 使用pure-ftpd搭建ftp服务

#使用pure-ftpd搭建比vsftpd搭建要简单

pure-ftpd搭建ftp

1、安装pure-ftpd包(需要epel扩展源)

•yum install -y epel-release

• yum install -y pure-ftpd

2、编辑pure-ftpd配置文件

vim /etc/pure-ftpd/pure-ftpd.conf

#找到pureftpd.pdb这行,把行首的#删除

(pureftpd.pdb是密码文件)

3、关闭vsftpd服务,开启pure-ftpd服务(因为都是监听21端口的

• systemctl stop vsftpd

• systemctl start pure-ftpd

4、创建给pure-ftp的用户使用的目录

• mkdir /data/ftp

5、创建一个普通用户pure-ftp

• useradd -u 1010 pure-ftp

6、将/data/ftp的属主权限改为pure-ftp

• chown -R pure-ftp:pure-ftp /data/ftp

7、创建pure-ftp用户

• pure-pw useradd ftp_usera -u pure-ftp  -d /data/ftp

#useradd指定创建用户名,-u指定系统用户,-d指定用户家目录;然后设置密码

[root@xinlinux-03 testuser1]# pure-pw useradd ftp_usera -u pure-ftp  -d /data/ftp

Password:

Enter it again:

8、将用户密码转化成计算机识别的二进制文件

pure-pw mkdb

测试:

touch   /data/ftp/123.txt

lftp [email protected]

ls

pure-pw用法:

pure-pw    list             #列出所有的用户

pure-pw    userdel      #删除用户          

pure-pw   usermod     #更改用户权限属性

pure-pw    passwd      #更改用户密码

pure-pw mkdb           #转化用户密码文件

猜你喜欢

转载自blog.csdn.net/Lucky_LGX/article/details/87977268