RHCE253

RHCE253实验(实验(服务管理)服务管理)试验2域名系统估计时间: 2个小时目标: 安装和配置一个DNS 服务器试验的起点: 标准的Red Hat Linux安装介绍本次实验指导您通过使用Berk

RHCE253实验(实验(服务管理)服务管理)

试验2

域名系统

估计时间: 2个小时

目标: 安装和配置一个DNS 服务器

试验的起点: 标准的Red Hat Linux安装

介绍

本次实验指导您通过使用Berkeley Internet Name守护进程来配置域名服务。使用模板文件作为指导,您将 实现一个仅有缓存的域名服务器

配置named 作为example.com 的从域名服务器

配置named 作为主域名服务器用于转发和IP 反查询

在整个试验中,您使用的机器名称和域名将基于您使用的机器的IP 地址。如果下面的试验出现了X 字样的名称,您应该把X 字样的名称替换成您的工作站的号码(您的IP 地址的最后一个部分)。例如,如果您的工作站的IP 的地址是192.168.0.3,您应该将stationX.domainX.example.com 转换成station3.domain3.example.com。

将数据包过滤设定为无效状态。在本次试验开始之前,请您确保您的主机上的所有包过滤已被关闭(显然,在实际使用中您可以利用Linux 内核的防火墙机制,然而我们在这里关掉它是为了减少潜在的问题)。

本次试验中以root 身份来使用下面命令达成上面的要求:

service iptables stop

chkconfig iptables off

初始化安装

A. 获得必要的文件

需要bind,bind-utils 和caching-nameserver 软件包。使用`rpm –q`来决定这些软件包是否被安装。如果没有被安装,通过输入如下命令来安装(以root 身份):

mkdir /mnt/server1; mount server1:/var/ftp/pub /mnt/server1

rpm –Uvh /mnt/server1/RedHat/RPMS/bind-9*

rpm –Uvh /mnt/server1/RedHat/RPMS/bind-utils*

rpm –Uvh /mnt/server1/RedHat/RPMS/caching-nameserver*

RPM 软件包bind 包括DNS 守护进程和支持脚本,但是没有配置和区域文件。caching-nameserver提供了一个通用的配置和区域文件。

B. 配置本地的解析器

配置您的主机使得它能够被用来作为域名服务,而不是192.168.0.254。

注意:直到您的域名服务器被正确安装和配置,您的机器的DNS 服务不会奏效。您也应该注意到当您的系统重新启动的时候或者重新设定您的网络的时候您的/etc/resolve.conf将会被改写(除非您对您的网络界面设定了在本讲座中提及的P EE RDNS)

按照如下编辑您的解析器配置文件

,

/etc/resolv.conf

search domainX.example.comnameserver 192.168.0.X

(记住将X 替换成您的工作站的号码)

第一行定义了如果出现简单的不符合完整域名的主机名称时默认添加的缺省域。第二行指定了将主机192.168.0.X (您的机器) 来作为DNS 查询的解析器。

为了简化情况,将除了localhost 主机名称的定义从您的主机名称配置文件中删除。

/etc/hosts

127.0.0.1 localhost localhost.localdomain

该步骤并不是必需的,但是可以简化DNS 的调式。有时候安装程序会将符合完整域名的主机名放在localhost 的这一行,这样一来会使得您无法准确的确定您的域名服务器配置是否正确。

步骤1:配置一个仅有缓存的域名服务器

第一个配置您将建立一个仅有缓存的域名服务器。这种类型的域名服务器对于任何区域都不授权。仅有缓存的域名服务器被设定为主域名服务器。当主机名称或者IP 地址需要被解析的时候,仅有缓存的域名服务器将查询请求转发到另外一台域名服务器或者到根域名服务器来决定授权的用来解析的域名服务器。一旦解析完成,仅有缓存的域名服务器在缓存中存储解析的信息,该解析信息有一段的生存周期。以后的查询将会变得很快。

您已经安装完对于此项配置所有必须的文件。按照如下步骤来配置域名服务器:

1. 在由caching-nameserver 提供的/etc/named.conf中的“option ”区域添加下面的内容:

for w arders {192.168.0.254; };

for w ard only;

这将导致您工作站上的仅有缓存的域名服务器转发其不能解析的DNS 查询到在192.168.0.254的域名服务器,并且如果超时,不与根域名服务器直接联系。

2. 启动named: service named start

3. 测试您的配置使用host 或者dig 来查询一些example.com 名称和一些真实的Internet 域名(如果您有Internet 访问接口的话)

步骤2:配置一个从域名服务器

一个从域名服务器将为一个区域提供授权的回答,但不是区域的授权开始。您现在将重新配置您的域名服务器作为example.com 区域和0.168.192.in-addr.arpa 区域的从域名服务器。

1. 在您的/etc/named.conf文件中添加如下行

z one “example.com ” {

,

type slave;

masters { 192.168.0.254; };

file “slave-example.com. z one ”;

};

z one “0.168.192.in-addr.arpa ” {

type slave;

masters { 192.168.0.254; };

file “slave-192.168.0. z one ”;

};

2. 重新启动named: servcie named restart

3. 检查slave-example.com. z one 和slave-192.168.0. z one 文件。这些文件应该包含了从位于192.168.0.254的主域名服务器传过来的区域数据库的副本。

确保所有的正确工作。在您开始下一个部分之前,去除您刚才在第一步中在/etc/named.conf中加入的两个从区域。

步骤3:配置一个主域名服务器

现在您将配制您的域名服务器来负责对于区域“domainX.example.com ”的解析工作。您将同样负责向对应的反查区域。将采用如下的步骤:

A. 编辑配置文件(named.conf)

B. 准备区域“domainX.example.com ”和区域“X.0.168.192.in-addr.arpa ”的数据库文件。

C . 重新启动域名服务器

D. 测试您的配置

为了您能够准备您的配置文件和区域文件,我们提供了模板文件。您可以通过匿名ftp 方式从以下地址获得: ftp://192.168.0.254/pub/namedfiles/

在如下的步骤中,记得将范例文件中中每一出出现的X 替换成您的工作站的号码。

E . 主配置文件

下面是我们应该考虑的三个区域

1. “. ”(根级别)区域

“. ”区域是DNS 层次中的最高层。根服务器提供了哪些服务器对于给定的域享有授权。“. ”节应该以如下的方式出现:

z one “. ” {

type hint;

file “named.ca ”;

};

2. “domainX.example.com ”(正向查询)区域

,

添加如下的行,使得您的域名服务器成为区域的主服务器。

z one “domainX.exmaple.com ” {

type master;

file “domainX.example.com. z one ”;

};

3. “X.0.168.192.-in-addr.arpa ”(反向查询)区域

现在添加如下的行,使得您的域名服务器成为反查区域的主服务器。

z one “X.0.168.192.in-addr.arpa ” {

type master;

file “192.168.0.X. z one ”;

};

下面是位于192.168.0.2的station2的样例配置文件

/etc/named.conf

options {directory “/var/named”;for w arders {192.168.0.254; };for w ard only;}; z one “. ” { type hint; file “named.ca ”; }; z one " localhost " IN { type master; file " localhost. z one " ; }; z one " 0.0.127.in-addr.arpa " IN { type master; file " named.local " ; }; z one “domain2.exmaple.com ” { type master; file

“domain2.example.com. z one ”; }; z one “2.0.168.192.in-addr.arpa ” { type master; file “192.168.0.2. z one ”; };

F . 数据库文件

您的主要配置文件指定了/var/named为数据库所在的目录。您现在必须在这个目录下面为您区域和反查区域建立数据库文件。这些数据库文件包括您的S O A,NS,A,C NAM E ,MX,PT R 和其他的可能的记录。所有的数据文件以如下的行开头:

$TTL 86400

该数值是缺省的以秒计的生存期间,该数值对所有在该域中的记录有效

1. 区域“domainX.example.com ”

在主配置文件中,区域“domainX.example.com ”数据库文件被存放在/var/named/domainX.example.com。这个文件含有类似的如下的记录

开始授权记录

,

@ IN SO A stationX.domainX.example.com. root.stationX.domainX.example.com. (

2001101100; Serial

28800 ;Refresh

14400 ;Retry

3600000 ;E xpire

0) ;Negative

“开始授权”(SO A)记录是数据库文件的第一个资源记录,但是它可能带了一个前导符$TTL(缺省存活时间)。SO A 记录使得数据库文件称为该区域的授权的信息源。第一个标记是后继记录适合的域,通常以“@”简化形式出现,如果扩展开来那就是在named.conf 文件中“zone ”节中所指明的域名(或者是在文件通过$ORI G IN 定义的当前区域,如果该定义存在的话)。

第四个标记使该域的主域名服务器,第五个是负责维护这个数据库的系统管理员的电子邮件的地址,注意第一个分隔符替换了第一个标记的@符号(你能解释为什么吗?)。接下来在记录中的条目指定了交互解析域名服务器的动态特性。

域名服务器记录

@ IN NS stationX.domainX.example.com.

域名服务器(NS)标识了主机作为特定域的授权的域名服务器。他们对于这个区域指定了主和从服务器和代表授权的子域的其他的服务器(例如,server1.example.com对于所有domainX.example.com 的域名服务器有一个NS 记录)。正如您对于“domainX.example.com ”只能有一个单一的域名服务器,您也只能有一个单一的NS 记录。

地址记录

domainX.example.com IN A 192.168.0.X

stationX.domainX.example.com IN A 192.168.0.X

www IN A 192.168.0.X

ftp IN A 192.168.0.X

pop IN A 192.168.0.X

地址(A)记录将主机名称映射到IP 地址(域名服务器的主要功能)。一个数据库文件通常包含A 记录对应着许多IP 地址。然而在我们的教室的环境里,在您的区域里面只有一台主机。注意第一个A 记录设定了域的“缺省的IP 地址”。接下来的A 记录建立了多个主机名称对应一个IP 地址。

主机名称可以是一个完全符合标准的名称(FQ DN),也可以是一个缩写。所有的不以点号结尾的主机名称都将被视为缩写,并且区域名称被附加到主机名称的后面。例如,第三个A 记录就是主机名称www .domainX.example.com .

规范名称(别名)记录

www 1 IN C NAM E stationX.domainX.example.com.

www 2 IN C NAM E stationX.domainX.example.com.

www 3 IN C NAM E stationX.domainX.example.com.

,

别名(C NAM E )记录建立了主机名称的别名。注意到别名映射到主机名称而不是IP 地址。

C NAM E 不应该出现在右边的数据区域作为真实的主机名称,对于多重别名的解析的速度会很慢。

邮件交换记录

@ IN MX 10 stationX.domainX.example.com.

domainX.example.com IN MX 10 stationX.domainX.example.com.

邮件交换记录(MX)记录了一个主机它将会处理给定的域或者主机邮件的转发。当一个邮件传递代理(MT A)试图投递信件的时候,它将首先试图在DNS 中查找目的主机的MX 记录。如果该MX 记录存在,那么将直接发送到MX 记录指定的主机。反之,如果不存在MX 记录,MT A 对于目的主机进行标准的DNS 查询,并且直接投递到该主机上去。MX记录用来建立邮件的网关,和作为缺省的对于域的邮件的目的地。

2. 区域“X.0.168.192.in-addr.arpa ”

在/etc/named.conf中,我们指定了/var/named/192.168.0.X.z one 作为区域X.0.168.192.in-addr.arpa 的反查区域数据库文件。他应该包含S O A 记录,NS记录,和对应的P T R 记录。

开始授权记录

@ IN SO A stationX.domainX.example.com. root.stationX.domainX.example.com. (

4;

10800;

3600;

604800;

86400)

IN NS stationX.domainX.example.com.

S O A 和NS 记录与前面的区域文件中的名称应该相同。

注意在NS 记录开头的空白的地方是非常特别的,并且被解释为“和上一条记录相同”的缩写。在本例中,上一条记录为符号“@”,其本身就是在主配置文件中定义的域名的缩写。

指针记录

X.0.168.192.IN-ADDR.ARPA. IN PT R stationX.domainX.example.com.

指针(PT R)记录通过间接的机制将名称映射到IP 地址。作为分离的技术来进行IP 地址的反查询的替代,BIND采用了一种修改的对于特定主机名称的正向查询的方式。这种“反向域名查询”以反转的IP 地址后面添加“in-addr.arpa ”域的形式出现。这将允许域名服务器使用相同的机制进行正反两方面的查询。

3. 把他们放在一起

下面是位于192.168.0.2的station2的样例配置文件:

,

/var/named/domain2.example.com.z one

$TTL 86400@ IN S O A station2.domain2.example.com. root.station2.domain2.example.com. ( 2001101100; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; E xpire 0) ; Negative @ IN NS station2.domain2.example.com. @ IN A

192.168.0.2station2.domain2.example.com. IN A 192.168.0.2www IN A 192.168.0.2ftp IN A 192.168.0.2pop IN A 192.168.0.2www 1 IN C NAM E station2.domain2.example.com. www 2 IN C NAM E station2.domain2.example.com. www 3 IN C NAM E station2.domain2.example.com. @ IN MX 10 station2.domain2.example.com.station2 IN MX 10

station2.domain2.example.com.

/var/named/192.168.0.2.z one

$TTL 86400@ IN S O A station2.domain2.example.com. root.station2.domain2.example.com. (4 10800 3600 604800 86400) IN NS station2.domain2.example.com.2.0.168.192.IN-ADDR.ARPA. IN PT R station2.domain2.example.com.

C . 重新启动域名服务器

再一次,我们将重新启动域名服务器。然后通过运行pidof 命令来确定其被运行:

service named restart

pidof named

查看一下服务器添加到/var/log/messages文件中的条目。确定您的域名在调入的时候没有发生错误。

如果您已经有一个域名服务器在运行并且不想重新启动它,您可以使用service named reload 来重新装入配置文件,这样子对于停止和启动服务器而言都比较快。

D. 测试域名服务器

进行如下DNS 查询,您能够解释所有的结果么?

host stationX

dig stationX.example.com

dig stationX.example.com @192.168.0.254

dig stationX.example.com

host server1.example.com

host 192.168.0.X

dig –x 192.168.0.X

dig –x 192.168.0.254

host www

host www 1

记住dig 期望给与一个FQ DN 作为查询,然而host 则通过查看位于文件/etc/resolv.conf的查询信息。试着在别的人的域名服务器和子域上进行附加的查询。如果设定正确,您将能够在其他教室系统上进行正向和反向查询。

,

挑战性的项目

通过增加多个“A ”记录使得一个主机名称对应着不同的IP 地址来配置一个“轮转”的主机名称。域名服务器该如何处理这种情况?提示: 试图尝试设定这些的A 记录的TT L 为0。

在您的域中增加子域“support.somainX.example.com ”。增加合适的资源记录使得它能够反向指向您的IP 地址。

与另一台工作站合作,成为另一台工作站的从域名服务器,在您的区域中为您的工作站增加一个新的C NAM E ,确保这个改变能够传播到从服务器。

收尾工作

接下来的试验就较为简单了,一旦您重新启动您的工作站,所有的DNS 查询将会重新设定到教室中的服务器上。为了确保收尾,确保您重新设定/etc/resolve.conf到其初始的状态。

/etc/resolv.conf

search example.comnameserver 192.168.0.254

/etc/hosts

127.0.0.1 localhost localhost.localdomain localhost192.168.0.X stationX.example.com

(如果您关闭后启动eth0接口,DHC P 将会自动为您设定配置文件)

试验3

Samba 服务

估计时间: 1个小时

目标: 使用samba 共享用户认证和文件系统

试验的起点: 标准的Red Hat Linux安装

将数据包过滤设定为无效状态。在本次试验开始之前,请您确保您的主机上的所有包过滤已被关闭。缺省的安装将会有一个文件叫做“/etc/sysconfig/iptables”,该文件配置了iptable 的功能。运行“chkconfig iptables off”。为了去除空间中所有的规则,运行“service iptables stop”

,

步骤1:Samba的用户连接的配置

任务

1. 安装samba,samba-common 和samba-client RPM 软件包并且启动smb 服务。一个缺省的配置将会被应用. 使用如下的命令确定Samba 是在正确的工作:

smbclient –L localhost –N

您可以从服务器获得回应,但是并不代表文件共享可用。(确保smbd 在运行,否则该命令无法工作)

2.在您的系统中增加几个用户(karl,j oe,mary 和j en),但是并不给他们设定密码。这些用户仅能够从samba 服务访问服务器。为了使得他们在shado w 中不含有密码,这些用户的shell 应该设定为/sbin/nologin

3.缺省的samaba 是被配置用来接收加密的密码的,但是在文件/etc/samba/smbpassw d 中没有设定任何密码。如果加密的密码在/etc/samba/smb.conf被设定,smbclient将发送加密的密码,所以为了在您的系统上测试samba 服务,您应该首先建立smbpass w d 文件,然后为每一个用户在该文件中添加密码。

4.注意到第一个在/etc/samba/smb.conf设定的共享[home ]并没有指定路径。该共享被配置用来当用户连接并且认证通过以后共享用户的home 目录。浏览一个或者两个用户的home 目录。上传一个文件到j oe 的home 目录。

可用的结果

一个工作的samba 服务可以被多个用户通过smbclient 访问。

步骤2: 提供给组目录访问的权限

场景/故事

为了使得我们的四个用户除了有他们自己的在服务器上的共享,我们这四位用户同时在同一个部门工作并且需要一个地方来存储部门的文件。我们将需要一个Linux 用户组,建立一个目录给这些用户来存储它们的内容,并且配置samba 服务器来共享目录。

任务

1. 建立一个对于拥有gid 为30000的用户叫做legal 的新组并且使用usermod 命令将这些用户加到组里去。

2. 建立一个目录/home/depts/legal。对于这个目录设定拥有权限,使得在legal 组中的用户可以在这个目录中添加/删除文件,然而其他的人不可以。并且设定S G ID 和粘滞位使得所有在这个目中建立的文件都拥有同legal 组的权限并且组中其他的的人不能够删除该用户建立的文件。

3. 在/etc/samba/smb.conf中建立一个samba 共享叫做[legal ]。只有legal 组中的用户才能够访问该共享。并且确保在

[legal ]中存放的文件的被建立的许可权限为0600。

,

4. 重新启动smb 服务并且使用smbclient ;来进行测试。

可用的结果

1. 只有lagal 组能够访问和使用一个Linux 目录。

2. 一个samba 共享只有legal 组的用户能够访问并且编辑

步骤3:为打印机提供访问

场景/故事

在samba 中除了可以共享文件以外,另外一个重要的功能就是提供共享打印队列,该打印队列已经在您的Linux 机器上定义。实际上,缺省的,所有在Linux 机器上配置的打印队列通过[printers ]共享到网络上去。在该步骤中,您将建立一个打印队列,通过samba 服务器进行共享。然后通过smbclient 来查看共享的打印机。

任务

1. 使用redhat-config-printer 建立一个新的打印队列。把打印队列命名为printerX(其中X 为您的工作站的号码)。配置打印机到本地连接的打印机/dev/lp0。配置打印队列确保任何递交的打印作业将保留在队列中。不要忘记重新启动samba 服务器。

2. 通过smbclient 来连接samba 服务器上共享的printerX。使用print 命令来递交打印作业到队列中去。检查作业已排队否。

可用的结果

1. 一个定义的Linux 打印队列printerX

2. 一个Samba 服务器允许授权的用户打印到共享打印机printerX

挑战1:安全和备份Samba/SMB

现在所有的东西都可以运行了,我们应该考虑在Samba 服务器上的网络安全和数据的可靠性了。

任务

1. 定义并且保护对于samba 服务器而言合法的连接。在文件/etc/samba/smb.conf中使用hosts allo w 参数来确定所有教室里的子网和本地回环子网。

2. 使用testparm 测试/etc/samba/smb.conf的语法。这个是否显示出一些应该考虑的安全上的漏洞呢?

3. 对您的邻居的[legal ] 共享进行备份。通过用户karl 的帐户建立一个共享的数据打包,使用或者smbtar 命令或者smbclient 的-T 选项。

可用的结果

标签: