NFS服务介绍
一、NFS(NetworkFileSystem)网络文件系统
主要用于linux系统上实现文件共享的一种协议,其客户端主要是Linux没有用户认证机制,且数据在网络上传送的时候是明文传送,一般只能在局域网中使用
支持多节点同时挂载及并发写入
企业应用:为集群中的webserver提供前端端存储
该服务包括的组件:
RPC(RemoteProcedureCallProtocol):
远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,不需要了解底层网络技术的协议。
rpcbind//负责NFS的数据传输,远程过程调用==tcp/udp协议端口
111==
nfs-utils//控制共享哪些文件,权限管理
二、NFS服务相关软件包
nfs-utils-1.2.3-26.el6.x86_64nfs服务的一个脚本控制工具(服务端与客户端)
nfs4-acl-tools-0.3.3-6.el6.x86_64acl工具包
nfs-utils-lib-1.1.5-4.el6.x86_64nfs库文件
[root@nfs-server~]#rpm-qrpcbind
rpcbind-0.2.0-11.el6.x86_64
[root@nfs-server~]#rpm-aq|grep^nfs
nfs-utils-1.2.3-39.el6.x86_64
nfs-utils-lib-1.1.5-6.el6.x86_64
nfs4-acl-tools-0.3.3-6.el6.x86_64
三、配置文件解读
/etc/exportsman5exports
共享目录共享选项
/nfs/share*(ro,sync)
共享主机:
*:代表所有主机
192.168.0.0/24:代表共享给某个网段
192.168.0.0/24(rw)192.168.1.0/24(ro):代表共享给不同网段
192.168.0.254:共享给某个IP
*.itcast.com:代表共享给某个域下的所有主机
共享选项:
ro:只读
rw:读写
sync:实时同步,直接写入磁盘
async:异步,先缓存在内存再同步磁盘
anonuid:设置访问nfs服务的用户的uid,uid需要在/etc/passwd中存在解决方案
anongid:设置访问nfs服务的用户组的gid
root_squash:默认选项root用户创建的文件的属主和属组都变成nfsnobody,其他人nfs-server端是它自己,client端是nobody。
no_root_squash:root用户创建的文件属主和属组还是root,其他人server端是它自己uid,client端是nobody。
all_squash:不管是root还是其他普通用户创建的文件的属主和属组都是nfsnobody
说明:
anonuid和anongid参数和all_squash一起使用。
all_squash表示不管是root还是其他普通用户从客户端所创建的文件在服务器端的拥有者和所属组都是nfsnobody;服务端为了对文件做相应管理,可以设置anonuid和anongid进而指定文件的拥有者和所属组
环境准备:
Web-server:10.1.1.11
NFS-server:10.1.1.12
详细步骤:
1.搭建NFS-server
1)创建共享目录及网站的静态资源文件
mkdir/share
echo"hello来到我的世界">/share/index.html
2)发布共享目录
[root@nfs-server~]#cat/etc/exports
/share10.1.1.0/24(ro)
3)启动服务检查端口是否监听
[root@nfs-server~]#servicerpcbindstart
Startingrpcbind:[
OK][root@nfs-server~]#servicenfsstart
StartingNFSservices:[OK]
StartingNFSmountd:[OK]
StartingNFSdaemon:[OK]
StartingRPCidmapd:[OK]
查看端口111是否监听:
[root@nfs-server~]#netstat-nltpu|greprpcbind
2.搭建web服务
1)安装软件
[root@web-server~]#rpm-qhttpd
httpd-2.2.15-29.el6.centos.x86_64
2)挂载nfs-server端共享目录
[root@web-server~]#mount-tnfs10.1.1.12:/share/var/www/html/media
mount:wrongfstype,badoption,badsuperblockon
10.1.1.1:/share,missingcodepageorhelperprogram,orothererror(forseveralfilesystems(e.g.nfs,cifs)youmightneeda/sbin/mount.<type>helperprogram)Insomecasesusefulinfoisfoundinsyslogtrydmesg|tailorso
原因:客户端没有安装nfs相关的工具包
解决:
[root@web-server~]#yum-yinstallnfs-utilsnfs-utils-libnfs4-acl-tools
[root@web-server~]#mount-tnfs10.1.1.1:/share/var/www/html
[root@web-server~]#mount.nfs10.1.1.1:/share/var/www/html/
[root@web-server~]#df-h
FilesystemSizeUsedAvailUse%Mountedon
/dev/mapper/vg_server-lv_root18G2.3G15G14%/
tmpfs491M0491M0%/dev/shm
/dev/sda1485M33M427M8%/boot
/dev/sr04.2G4.2G0100%/mnt
10.1.1.1:/share18G3.1G14G19%
/var/www/html
3)在web-server端查看首页文件
[root@web-server~]#ll/var/www/html/total4-rw-r--r-1rootroot25Dec3002:48index.html
4)启动Apache服务
[root@web-server~]#servicehttpdstart
3.测试验证
Windows:
http://10.1.1.2
Linux:
#yum-yinstallelinks
#elinkshttp://10.1.1.2
客户端访问常见问题:
[root@MissHou~]#showmount-e10.1.1.1
clnt_create:RPC:PortmapperfailureUnabletoreceive:
errno113(Noroutetohost)
原因:
1.nfs-server端rpcbind服务没开
2.网络问题
3.防火墙问题===============================================================
4.实现nfs-server端的数据文件实时同步
1)安装inotify工具
[root@nfs-server~]#pwd/soft
[root@nfs-server~]#tarxfinotify-tools-3.13.tar.gz
[root@nfs-server~]#ls
inotify-tools-3.13inotify-tools-3.13.tar.gz
[root@nfs-server~]#cdinotify-tools-3.13
[root@nfs-serverinotify-tools-3.13]#ls
aclocal.m4config.guessconfiguredepcomplibinotifytoolsMakefile.inNEWS
AUTHORSconfig.h.inconfigure.acINSTALLltmain.sh
manREADME
ChangeLogconfig.subCOPYINGinstall-shMakefile.am
missingsrc
[root@nfs-serverinotify-tools-3.13]#./configure
[root@nfs-serverinotify-tools-3.13]#make
[root@nfs-serverinotify-tools-3.13]#makeinstall
2)编写脚本
[root@nfs-server~]#vimrsync.sh
#!/bin/bash
/usr/local/bin/inotifywait-mrq-e
modify,delete,create,attrib,move/share|whilereadevents
do
rsync-a--delete/share10.1.1.250:/backup/echo"`date+%F\%T`出现事件$events">>
/var/log/rsync.log2>&1
done
加可执行权限:
[root@nfs-server~]#chmod+xrsync.sh
注意:在backup备份机器上创建/backup目录!!!
说明:解决不需要交互有两种方案,其一可以配置免密登录;其二可以在backup机搭建rsync服务
3)配置nfs-server的root用户免密码登录backup机器
[root@nfs-server~]#ls~/.ssh/
known_hosts
[root@nfs-server~]#ssh-keygen
。。。
[root@nfs-server~]#ls~/.ssh/
id_rsaid_rsa.pubknown_hosts
[root@nfs-server~]#cd~/.ssh/
[root@nfs-server.ssh]#ssh-copy-id-iid_rsa.pubroot@10.1.1.250
4)脚本放到后台去运行
[root@nfs-server~]#./rsync.sh&
5)测试验证
nfs-server端改变文件:
[root@nfs-server~]#cd/share/
[root@nfs-servershare]#mkdiraaa
[root@nfs-servershare]#touchtest{1..3}
查看日志:
[root@nfs-server~]#tail-f/var/log/rsync.log
扩展:Samba服务
一、Samba介绍
SMB(ServerMessageBlock)协议实现文件共享,也称为CIFS(CommonInternetFileSystem)是Windows和类Unix系统之间共享文件的一种协议。客户端主要是Windows;支持多节点同时挂载以及并发写入。主要用于windows和Linux下的文件共享、打印共享。实现匿名与本地用户文件共享。
2018-12-3007:31:36出现事件/share/CREATE,ISDIRaaa
2018-12-3007:32:15出现事件/share/CREATEtest1
2018-12-3007:32:16出现事件/share/ATTRIBtest1
2018-12-3007:32:16出现事件/share/CREATEtest2
2018-12-3007:32:16出现事件/share/ATTRIBtest2
2018-12-3007:32:16出现事件/share/CREATEtest3
2018-12-3007:32:16出现事件/share/ATTRIBtest3
backup备份机查看数据同步情况:
[root@backupbackup]#ll
total8
drwxr-xr-x2rootroot4096Dec3007:31aaa
-rw-r--r-1rootroot25Dec3002:48index.html
-rw-r--r-1rootroot0Dec3007:32test1
-rw-r--r-1rootroot0Dec3007:32test2
-rw-r--r-1rootroot0Dec3007:32test3
Samba服务的主要进程:
smbd进程:控制发布共享目录与权限,负责文件传输TCP139,445
nmbd进程:用于名称解析netbiosUDP137,138;基于NETBIOS协议,获得计算机名称——>解析为相应IP地址,实现信息通讯。NetBIOS是NetworkBasicInput/OutputSystem的简称,一般指用于局域网通信的一套API。
二、Samba服务器搭建
了解配置文件:
[root@smb-server~]#rpm-aq|grep^samba
samba-3.6.9-164.el6.x86_64服务端软件包
samba-common-3.6.9-164.el6.x86_64
samba-winbind-3.6.9-164.el6.x86_64
samba-client-3.6.9-164.el6.x86_64
samba-winbind-clients-3.6.9-164.el6.x86_64
samba4-libs-4.0.0-58.el6.rc4.x86_64
/etc/samba/smb.conf
[global]全局选项
workgroup=MYGROUP定义samba服务器所在的工作组
serverstring=SambaServerVersion%vsmb服务的描述
logfile=/var/log/samba/log.%m日志文件
maxlogsize=50日志的最大大小KB
security=user认证模式:share匿名|user用户密码|server外部服务器用户密码
passdbbackend=tdbsam密码格式loadprinters=yes加载打印机
cupsoptions=raw打印机选项
[homes]局部选项(共享名称)
comment=HomeDirectories描述
browseable=no隐藏共享名称
writable=yes可读可写
[printers]共享名称
comment=AllPrinters描述
path=/var/spool/samba本地的共享目录
browseable=no隐藏
guestok=no——>public=no需要帐号和密码访问
writable=no——>readonly=yes不可写
printable=yes打印选项
[share]
path=/dir1
guestok=no
writable=yes
需求:
搭建一个SAMBA服务,共享一个目录/samba/share,客户端使用user01/123通过windows或者Linux可以在该目录里创建文件删除文件
smb-server:10.1.1.1
1.关闭防火墙和selinux
2.配置yum源
3.软件三步曲
1)安装软件
[root@smb-server~]#yum-yinstallsamba
2)确认软件是否成功安装
[root@smb-server~]#rpm-aq|grep^samba
samba-winbind-3.6.9-164.el6.x86_64
samba-winbind-clients-3.6.9-164.el6.x86_64
samba-3.6.9-164.el6.x86_64
samba-common-3.6.9-164.el6.x86_64
3)查看软件的文件列表
/etc/init.d/nmbd
/etc/init.d/smbd
/usr/sbin/nmbd
/usr/sbin/smbd
[root@smb-server~]#rpm-qlsamba-common
/etc/samba/smb.conf配置文件
4.根据需求通过修改配置文件完成服务的搭建
1)创建一个共享目录
mkdir/samba/share-p
2)修改配置文件
vim/etc/samba/smb.conf
...
[smb_share]
comment=sambaservice
path=/samba/share
guestok=no
writable=yes
或者
[samba_share]
path=/samba/share
public=no
writable=yes
3)创建一个本地用户并且加入到samba数据库里
[root@smb-serversamba]#useradduser01
[root@smb-serversamba]#iduser01
uid=508(user01)gid=510(user01)groups=510(user01)
[root@smb-serversamba]#whichsmbpasswd
/usr/bin/smbpasswd
[root@smb-serversamba]#rpm-qf/usr/bin/smbpasswd
samba-common-3.6.23-51.el6.x86_64
[root@smb-serversamba]#smbpasswd-auser01
NewSMBpassword:
RetypenewSMBpassword:
Addeduseruser01.
[root@smb-serversamba]#pdbedit-L
user01:508:
5.启动服务
[root@smb-serversamba]#/etc/init.d/nmbstart
StartingNMBservices:[OK]
[root@smb-serversamba]#/etc/init.d/smbstart
StartingSMBservices:[OK]
6.测试验证
windows:
Linux下:
查看samba服务共享资源:
[root@client~]#smbclient-L10.1.1.1-Uuser01
Enteruser01'spassword:
sessionsetupfailed:SUCCESS0
解决:
服务端修改hosts文件将IP和主机名一一对应起来查看smb服务端共享的模块或者标签:
[root@client~]#smbclient-L10.1.1.1-Uuser01
Enteruser01'spassword:
-L:列出
-U:指定用户查看
直接访问smb服务:
[root@client~]#smbclient//10.1.1.1/smb_share-Uuser01
Enteruser01'spassword:
Domain=[MYGROUP]OS=[Unix]Server=[Samba3.6.23-51.el6]
smb:\>ls
.D0SatSep110:10:002018
..D0SatSep110:10:002018
35418blocksofsize524288.29675blocksavailable
问题可以查看共享的文件,但是不能够创建文件
分析:
服务开放了写权限,但是目录本身没有对user01用户开发写权限
解决:
[root@smb-serversamba]#setfacl-mu:user01:rwx/samba/share/
-m:修改权限
u:表示用户
g:表示组
[root@smb-serversamba]#setfacl-mg:admin:rx/samba/share
挂载使用:
[root@client~]#mount.cifs-ouser=user01,pass=123//10.1.1.1/samba/share/u01没有mount.cifs命令,请安装cifs-utils-4.8.1-19.el6.x86_64windows下如果无法访问,请查看是否开启了smb客户端程序:访问控制:控制读写权限writable=yes/noreadonly=yes/no如果资源可写,但只允许某些用户可写,其他都是只读writelist=admin,root,@staff(用户组)readlist=mary,@students控制访问对象validusers=tom,mary,@itcastinvalidusers=tom
看起来您想要了解如何设置网络访问控制,配置FTP、NFS和Samba服务,以及如何进行文件同步和备份。我将按照您的要求生成答案:
1.网络访问控制
使用`hosts.allow`和`hosts.deny`文件来控制对网络服务的访问。
拒绝某个网段:`hosts.deny`文件中添加`192.168.0.`
允许某个IP:`hosts.allow`文件中添加`192.168.0.254`
拒绝所有其他IP:`hosts.deny`文件中添加`all`
2.FTP服务
FTP可以在局域网和外网中使用。
安装vsftpd或proftpd等FTP服务软件。
3.NFS(NetworkFileSystem)
NFS主要用于局域网内的文件共享。
挂载方式访问:使用`mount-tnfs<NFS服务器IP>:/share/本地挂载点`
配置步骤:
1.禁用防火墙和Selinux。
2.安装rpcbind和nfs-utils包。
3.配置`/etc/exports`文件以定义导出的目录和访问权限。
例如:`/share*(rw,sync)`
4.启动rpcbind和nfs服务。
5.检查端口占用情况。
6.确保NFS服务已正常启动。
4.Samba
Samba用于在Linux和Windows间共享文件。
直接访问:使用`smbclient//服务器IP/共享名-U用户名`
挂载方式:使用`mount-tcifs//服务器IP/共享名/本地挂载点-ouser=用户名,pass=密码`
配置步骤:
1.创建共享目录并设置权限。
2.编辑`/etc/samba/smb.conf`配置文件,定义共享。
3.创建一个本地用户并添加到samba的用户数据库中。
4.启动samba服务。
5.测试验证。
5.文件同步与备份
使用rsync进行文件同步和备份。
安装rsync在需要同步的机器上。
使用`ssh-keygen`和`ssh-copy-id`配置免密登录。
在NFS服务器上安装inotify-tools来监听文件变化,并自动同步到备份主机。
创建一个脚本来自动化rsync操作,当检测到文件变化时自动执行。
以下是对您所提问题的回答,该回答已按照您的要求进行改写和扩展:
SAMBA⽂件共享与DNS域名服务
一、SAMBA⽂件共享概述
1. SAMBA定义:
SMB(Server Message Block)协议实现⽂件共享,也称为CIFS(Common Internet File System),是在Windows和类Unix系统之间共享⽂件的一种协议。其主要客户端是Windows,同时支持多节点同时挂载以及并发写⼊。主要用于Windows和Linux下的⽂件共享、打印共享。它实现了匿名与本地⽤户的⽂件共享。
2. SAMBA主要进程:
smbd进程:负责发布共享⽬录与权限、⽂件传输,并监听TCP 139和445端口。
nmbd进程:处理NetBIOS名称解析,使用UDP 137和138端口。
3. SAMBA环境准备:
从模板机中克隆⼀台Linux服务器,命名为SAMBA。
更改主机名称与IP地址。
关闭防⽕墙与SELinux,配置yum源。
编辑网络配置文件,重启网络服务。
4. SAMBA软件安装:
SAMBA同样是⼀个C/S架构的软件,其服务器端软件需单独安装。
5. 了解smb配置文件:
编辑smb.conf配置文件,定义各种共享设置,如全局选项、局部选项等。
6. SAMBA综合案例:
搭建SAMBA服务,共享⼀个⽬录,并让客户端通过Windows或Linux访问和操作该⽬录。
二、DNS域名服务与SAMBA的关联
虽然SAMBA⽂件共享与DNS域名服务的直接联系不显著,但在实际⽹络环境中,了解DNS的基本原理和配置方法对于确保SAMBA服务的正确运行和访问是必不可少的。例如,通过配置DNS解析,可以实现更加友好的⽹络资源访问命名,提高⽹络资源的可访问性。
三、总结与劝导
1. SAMBA的应用场景:
SAMBA在局域⽹内提供了Windows与Linux系统之间的⽂件共享功能,使得跨平台的⽂件传输和共享变得更加简便。
2. 安全与权限控制:
在SAMBA配置中,需要注意对读写权限的控制,以确保⽹络资源的安全稳定。
3. 学习与发展:
随着技术的发展,持续学习和掌握新的网络技术和协议将有助于更好地应对未来的挑战和需求。同时,也要关注网络安全和合规性方面的问题,确保网络活动的合法性和正当性。
以下是对您所提问题的回答,该回答已按照您的要求进行改写和扩展:
DNS域名管理系统
一、任务背景
在配置DNS管理系统时,我们面临着以下任务背景和需求:
访问控制对象定义:
允许访问的用户包括`tom`、`mary`以及`@itcast`组成员。
拒绝访问的用户为`tom`。
注意:上述两个选项中只能存在一个。
网络访问控制:
`hosts deny = 192.168.0.`语句用于拒绝某个网段的访问。
`hosts allow = 192.168.0.254`语句用于允许某个特定IP地址的访问。
`hosts deny = all`语句用于拒绝所有IP地址的访问。
`hosts allow = 192.168.0. EXCEPT 192.168.0.254`语句用于允许某个网段内除特定IP外的所有地址访问。
注意:当`deny`和`allow`同时存在时,`allow`规则优先。
为了实现内网域名的解析,需要配置DNS服务器将内网域名`www.zhangmin.cluster`解析到对应的内网服务器IP地址,以便内部用户能够访问内网web应用。
二、DNS概述
DNS(Domain Name System)即域名管理系统,是互联网的一项核心服务,负责将域名转换为IP地址。
域名的作用:
域名按照特定格式组成,代表互联网中的计算机或计算机组的名称。
域名使人们能够更方便地访问互联网资源,而无需记住复杂的IP地址。
在互联网中,计算机之间通过IP地址互相访问,但IP地址难以记忆,因此使用域名来代替。
DNS解析过程:
正向解析:将主机域名转换为对应的IP地址,便于网络程序通过主机域名访问目标服务器。
反向解析:将IP地址转换为对应的域名,便于网络(服务)程序通过IP地址查询主机的域名。
三、DNS的结构
DNS结构从逻辑上可以划分为以下几个层次:
根域:位于DNS系统最顶层,用`.`表示,全世界共有13台根服务器。
一级域名:也称为顶级域或国家域,如`.com`、`.net`、`.edu`等。
二级域名:个人或企业注册和管理的域名,如`qq.com`、`baidu.com`。
四、DNS工作原理
DNS查询主要分为两种类型:递归查询和迭代查询。
递归查询:客户端向DNS服务器请求一次,DNS服务器返回最终结果。
迭代查询:DNS服务器之间进行多次查询,直至找到结果。
五、dig工具使用
`dig`(域名信息搜索器)是一个强大的网络管理员工具,用于查询DNS服务器以获取特定域名的信息。
以上内容是对DNS域名管理系统的详细介绍,包括任务背景、DNS概述、DNS结构、工作原理以及使用dig工具的方法。通过理解和应用这些概念,可以有效地管理和配置DNS系统,以支持网络资源的访问和解析。
以下是对您所提问题的回答,该回答已按照您的要求进行改写和扩展:
三、DNS服务器的搭建
1、DNS服务器端软件
DNS的域名解析主要使用UDP/53端口,而主从之间的数据传输默认使用TCP/53端口。
DNS服务器端软件:
Bind:由美国加州大学Berkeley(伯克利)分校开发和维护的开放源码DNS服务器软件,支持各种Unix平台和Windows平台,是目前世界上使用最为广泛的DNS服务器软件之一,现在由互联网系统协会(Internet Systems Consortium)负责开发与维护。
2、DNS服务器搭建
第一步:环境准备
使用`dig +trace www.itcast.cn`追踪DNS的解析过程。
使用`dig www.itcast.cn`进行正向解析。
使用`dig -x IP地址`进行反向解析。
更改主机名称与IP地址。
使用MX进行连接。
关闭防火墙与SELinux。
配置YUM源。
第二步:安装DNS软件
安装完毕后,可以使用`rpm -q`查询是否安装成功:
```bash
# yum install bind -y
# rpm -q bind
# rpm -ql bind
# 日志轮转文件
/etc/logrotate.d/named
# 配置文件目录
/etc/named
# 主配置文件
/etc/named.conf
# zone文件,定义域
/etc/named.rfc1912.zones
# 服务管理脚本
/usr/lib/systemd/system/named.service
# 二进制程序文件
/usr/sbin/named
# 检测配置文件
/usr/sbin/named-checkconf
# 检测域文件
/usr/sbin/named-checkzone
# 根域服务器
/var/named/named.ca
# 正向解析区域文件模板
/var/named/named.localhost
# 反向解析区域文件模板
第三步:DNS正向解析配置(域名=>IP)
`/etc/named.conf`主要配置访问权限控制,`/etc/named.rfc1912.zones`主要定义域名如何解析。
对配置文件进行备份。
编辑`/etc/named.conf`添加访问权限。
编辑`/etc/named.rfc1912.zones`扩展zone配置。
在`/var/named`目录创建并编辑zone文件以定义正向解析。
第四步:检查named.conf与zones文件
使用`named-checkconf`和`named-checkzone`命令检查配置文件与区域文件的正确性。
第五步:启动DNS服务(named)
重启服务后,使用`netstat`命令确认服务监听的端口。
3、Web服务搭建
安装并启动Web服务,例如Apache HTTP Server (`httpd`)。
4、测试DNS服务器的正向解析
在客户端服务器上,使用`nslookup`和`elinks`或`curl`命令测试DNS解析是否正常工作。
修改客户端的DNS配置,可以临时通过修改`/etc/resolv.conf`或永久通过修改网络接口配置文件(如`/etc/sysconfig/network-scripts/ifcfg-ens33`)来指定DNS服务器。