9 NFS

9.1 NFS基础

目标

.使用NFS将文件系统连接到客户端,并使用IP 地址控制访问

.使用NFS将文件系统连接到客户端,并使用kerberos 来控制访问

.配置用户名和密码控制访问的SMB共享文件系统与客户端的SMB 共享

.安装了多用户安装选项,使用基于密码的身份验证和证书,来控制访问与SMB 共享

在NFS服务器主机中进行设置

– 安装NFS服务器软件包

– 启动NFS服务器程序

– 设置NFS共享目录输出

在NFS客户机中进行设置

– 使用mount命令挂载NFS服务器中的NFS共享目录到文件系统中

– 通过NFS文件系统的挂载点目录访问NFS服务器中的共享内容

• nfs-utils软件包

– 提供了NFS服务器的启动脚本和管理维护工具

• 软件包安装

– “nfs-utils” 软件包在RHEL7系统中是默认安装的

• “exports”文件用于配置NFS服务器中输出的共享目录

# cat /etc/exports

/home/share *(sync,ro)

字段说明

nfs共享目录名需要进行输出的NFS共享目录名称

客户端主机地址能够访问共享目录的主机地址

配置选项设置共享目录的属性,字段放置在括号对( )中,多个选项间用逗号分隔

– sync:设置NFS服务器同步写磁盘,这样不会轻易丢失数据,建议所有的NFS共享目录都使用该选项

– ro:设置输出的共享目录只读,与rw不能共同使用

– rw:设置输出的共享目录可读写,与ro不能共同使用

Exports文件配置实例

• 配置NFS服务器输出的共享目录

– 输出“/home/share”目录,对所有主机可读,对地址为192.168.1.19的主机可读可写

– 输出“/home/pub”目录,对192.168.152.0子网内的所有主机可读

# cat /etc/exports

/home/share *(sync,ro) 192.168.1.19(sync,rw)

/home/pub 192.168.152.0/24(sync,ro)

NFS服务管理

• 查询服务器的状态

# systemctl status nfs-server

# systemctl start/restart nfs-server

连接NFS共享

– 显示当前主机或指定服务器中的输出列表

# showmount -e [IP/HOST]

• 挂载NFS服务器中的共享目录

# mount -t nfs 192.168.152.131:/home/share/ /mnt/

# mount | grep nfs

– 使用umount命令卸载NFS文件系统# umount /mnt/

配置NFS启动自动挂载

# vim /etc/fstab

192.168.152.131:/home/pub /mnt nfs defaults 0 0

# mount -a

配置NFS的firewall端口安全

# firewall-cmd --permanent --add-service=nfs

# firewall-cmd --permanent --add-service=mountd

# firewall-cmd --permanent --add-service=rpc-bind

# firewall-cmd --reload

9.2 NFS配置实验命令

rpms: nfs-utils

daemon: nfs-server

nfs-secure-server / kerberos nfs-secure(client)

[Server]

# mkdir /public

# yum list nfs-utils

# man exports /example

# vim /etc/exports

/public *.example.com(ro)

# systemctl restart nfs-server

# systemctl enable nfs-server

# rpcinfo

# firewall-cmd --permanent --add-service=nfs

# firewall-cmd --permanent --add-service=rpc-bind

# firewall-cmd --permanent --add-service=mountd

# showmount -e

[Desktop]

# showmount -e s0

# mkdir /mnt/nfsmount

# vim /etc/fstab

...

server0.example.com:/public /mnt/nfsmount nfs defaults 0 0

# mount -a

# findmnt /mnt/nfsmount

9.3 配置基于Kerberos验证的NFS

服务端:

man exports | grep sec=

①修改配置文件

# echo '/securenfs desktopX(sec=krb5p,rw)' >>/etc/exports

②修改配置文件:/etc/sysconfig/nfs

# Optional arguments passed to rpc.nfsd. See rpc.nfsd(8)

RPCNFSDARGS="" #修改为:RPCNFSDARGS="-V 4.2"

③下载keytab文件

# wget -O /etc/krb5.keytab

http://classroom.example.com/pub/keytabs/serverX.keytab

④启动nfs-secure-server 服务

# systemctl start nfs-secure-server

客户端:

① 下载keytab文件

# wget -O /etc/krb5.keytab

http://classroom.example.com/pub/keytabs/desktopX.keytab

② 启动nfs-secure服务

# systemctl start nfs-secure

③修改配置文件# vim /etc/fstab

server0.example.com:/protected /mnt/nfssecure nfs defaults,sec=krb5p,v4.2 0 0

实验命令

[classroom]

# vim /content/courses/rh254/rhel7.0/grading-scripts/lab-nfskrb5

[server]

# lab nfskrb5 setup

# getent passwd ldapuser0

[desktop]

# lab nfskrb5 setup

# getent passwd ldapuser0

[Server]

# mkdir -p /protected/project

# man exports /sec

# vim /etc/exports

...

/protected *.example.com(rw,sec=krb5p)

# rpm -qc nfs-utils

# vim /etc/sysconfig/nfs

...

RPCNFSDARGS="-V 4.2"

# wget -O /etc/krb5.keytab http://classroom/pub/keytabs/server0.keytab

# systemctl restart nfs-server

# systemctl restart nfs-secure-server

# systemctl enable nfs-secure-server

# showmount -e

# chown ldapuser0 /protected/project

# ll -d /protected/project

[Desktop]

# mkdir /mnt/nfssecure

# wget -O /etc/krb5.keytab http://classroom/pub/keytabs/desktop0.keytab

# systemctl restart nfs-secure

# systemctl enable nfs-secure

# vim /etc/fstab

...

server0.example.com:/protected /mnt/nfssecure nfs defaults,sec=krb5p,v4.2 0 0

# mount -a

# findmnt /mnt/nfssecure

# ssh ldapuser0@localhost

kerberos

$ touch /mnt/nfssecure/project/rw.txt

server client

/etc/export

sec=krb5p

/etc/sysconfig/nfs /etc/fstab

-V 4.2 v4.2,sec=krb5p

/etc/krb5.keytab /etc/krb5.keytab

nfs-secure-server nfs-secure

----------------------

9.4 实验外:如何生成令牌 krb

rebuild keytab

[classroom] online

# rm -rf /var/www/html/pub/keytables/server30.keytab

# kadmin.local

kadmin.local: ?

kadmin.local: list_principals

kadmin.local: ktadd

kadmin.local: ktadd -k /var/www/html/pub/keytabls/server30.keytab host/server30.example.com

kadmin.local: ktadd -k /var/www/html/pub/keytables/server30.keytab nfs/server30.example.com

kadmin.local: exit

# chmod a+r /var/www/html/pub/keytables/server30.keytab

9.5 RHCE相关题目2个

:: 配置 NFS 服务

在 server0 配置 NFS 服务,要求如下:

以只读的方式共享目录 /public 同时只能被 example.com 域中的系统访问

以读写的方式共享目录 /protected 能被 example.com 域中的系统访问

访问 /protected 需要通过 Kerberos 安全加密,

您可以使用下面URL提供的密钥 http://classroom/pub/keytabs/server0.keytab

目录 /protected 应该包含名为 project 拥有人为 ldapuser0 的子目录

用户 ldapuser0 能以读写方式访问 /protected/project

:: 挂载一个NFS共享

在 desktop0 上挂载一个来自 server0.example.com 的 NFS 共享,并符合下列要求:

/public 挂载在下面的目录上 /mnt/nfsmount

/protected 挂载在下面的目录上 /mnt/nfssecure 并使用安全的方式,

密钥下载 URL 如下: http://classroom/pub/keytabs/desktop0.keytab

用户 ldapuser0 能够在 /mnt/nfssecure/project 上创建文件

这些文件系统在系统启动时自动挂载

10 SMABA

10.1 基础

lSamba是一套使用SMB(Server Message Block)协议的应用程序

Samba允许Linux服务器与Windows系统之间进行通信,使跨平台的互访成为可能。

lSamba采用C/S模式, 其工作机制是让NetBIOS ( Windows网上邻居的通信协议)和SMB两个协议

运行于TCP/IP通信协议之上,并且用NetBEUI协议让Windows在“网上邻居”中能浏览Linux服务器。

• Samba的软件包组成

– samba-*.rpm

– samba-client-*.rpm

– samba-common-*.rpm

– cifs-utils-*.rpm

• Samba的配置目录及文件

– /etc/samba/

– /etc/samba/smb.conf

• smb.conf文件的配置内容

– [global]:全局设置

– [homes]:用户目录共享设置

– [printers]:打印机共享设置

– [myshare]:自定义名称的共享目录设置

• 辅助配置内容

– 注释行:以# 号开头的行 说明注释

– 配置样例行:以; 号开头的行 配置注释

– 结合grep命令可以提取有效配置行

• grep -v "^#" smb.conf | grep -v "^;"

常见全局配置项的含义

– workgroup:所在工作组名称

– server string:服务器描述信息

– security:安全级别,可用值如下:

share、user、server、domain

– log file:日志文件位置,“%m”变量表示客户机地址

– max log size:日志文件的最大容量,单位为KB

常见共享目录配置项的含义

– comment:对共享目录的注释、说明信息

– path:共享目录在服务器中对应的实际路径

– browseable:该共享目录在“网上邻居”中是否可见

– guest ok:是否允许所有人访问,等效于“public”

– writable:是否可写,与read only的作用相反

建立可匿名访问的文件共享

• 修改smb.conf配置文件

– security = share

– public = yes

访问SMB共享

• smbclient -L 192.168.168.1

• smbclient -U vina //192.168.168.1/movie

创建SMB访问账户

• 建立Samba用户数据库文件

– 系统用户帐号-> Samba用户帐号

– smbpasswd管理命令,常用的选项:

• -a:添加指定的Samba帐号

05-27 19:06