📄 00000010.htm
字号:
Address: 202.199.248.6 <BR> <BR> <BR> Non-authoritative answer: <BR> <BR> Name: service.gov.tw <BR> <BR> Address: 210.69.2.1 <BR> <BR> Aliases: www.gov.tw <BR> <BR> Non-auth.....这样的提示表示信息不是真正从对方的服务器来的,而是来自某个缓冲 <BR>服务的结果(在现在就是本地缓冲的结果)。 <BR> <BR> 测试完毕后,输入exit退出。 <BR> <BR> 一般情况下,DNS的工作信息可以在/var/log/messages中看到。 <BR> <BR> 上面我们定义了一个主域名服务器,其实次要域名服务器的配置也差不多,不过,因 <BR>为次要域名服务是从主域名服务器得到数据,所以不需要配置asnc.rev和asnc.hosts文 <BR>件,相反,我们需要把zone中相应的部分改成: <BR> <BR> zone "asnc.edu.cn" in { <BR> <BR> type slave; <BR> <BR> masters {202.199.248.2}; <BR> <BR> }; <BR> <BR> <BR> zone "248.199.202.in-addr.arpa" in { <BR> <BR> type slave; <BR> <BR> masters {202.199.248.2}; <BR> <BR> }; <BR> <BR> type slave说明这是个从域名控制器,masters子句给出了本域的主域名控制器的地址 <BR>,注意必须用花括号括起来,这是个非常容易犯的错误。 <BR> <BR> 还可以定义cache-only控制器,这可以用type forward方式实现,如 <BR> <BR> zone "asnc.edu.cn" in { <BR> <BR> type forward; <BR> <BR> forwarders {202.199.248.2}; <BR> <BR> }; <BR> <BR> 由于named的实现,每次修改名字解析文件(如asnc.hosts,asnc.rev等等)之后,需 <BR>要重新启动named,这可以用ndc restart命令实现。 <BR> <BR> 前面我们曾经指出过,DNS是一种分级检索系统,那么,上级DNS如何知道下级DNS的信 <BR>息呢?举个例子来说,如果你申请了一个mydomain.com的域名,那么.com的服务器应该 <BR>如何注册它呢? <BR> <BR> 为了解释这个问题,我们看一个例子,这个例子的配置就是上面说的asnc.edu.cn域的 <BR>主DNS服务器,现在我需要建立一个子域lab.asnc.edu.cn,那么,注意新的asnc.hosts <BR>文件(加粗体的是增加的部分): <BR> <BR> [root@openlab named]# cat asnc.hosts <BR> <BR> @ IN SOA openlab.asnc.edu.cn. wanghy.openlab.asnc.edu.cn. <BR>( <BR> <BR> 1997022700 ; Serial <BR> <BR> 28800 ; Refresh <BR> <BR> 14400 ; Retry <BR> <BR> 3600000 ; Expire <BR> <BR> 86400 ) ; Minimum <BR> <BR> NS openlab.asnc.edu.cn. <BR> <BR> openlab IN A 202.199.248.6 <BR> <BR> mail IN A 202.199.248.11 <BR> <BR> www IN A 202.199.248.2 <BR> <BR> physics IN A 202.199.248.177 <BR> <BR> lab 134000 IN NS ns.lab.asnc.edu.cn. <BR> <BR> ns.lab 134000 IN A 202.199.248.149 <BR> <BR> 第一个加粗的行定义了一个子域,因为lab后面没有点,所以自动解释为lab.asnc.ed <BR>u.cn。NS是名字服务器记录,这一行说明lab.asnc.edu.cn域的内容应该去ns.lab.asnc <BR>.edu.cn域询问,134000是生存期,即这个名字在多长时间内不会改变,这个栏目是可选 <BR>的,缺省就使用前面的定义。注意如果在IN NS前面没有子域说明的话,就表示相应的名 <BR>字服务记录是对于本域的。例如IN NS 202.199.248.254将定义另一个对于asnc.edu.cn <BR>域的域名服务器。 <BR> <BR> 接着的一行定义了ns.lab机器的地址,这样,以后再有询问host.lab.asnc.edu.cn.的 <BR>时候,我们的DNS服务器将去查询202.199.248.149服务器。 <BR> <BR> 显然,如果你做的是一个很大的公司的主域名控制器,那么你的名字服务器会缓冲许 <BR>多的信息,而且会忙于处理愚蠢的检索。为了解决这个问题,你可以将你的服务器设置 <BR>成为非递归的,这可以通过在named.conf中加入参数 recursion no子句来实现,通常r <BR>ecursion是置为yes的。 <BR> <BR> 在一般情况下,PTR和A记录是域名系统的主要数据,另外两种常见的记录类型是MX和 <BR>CNAME,MX记录我们放到电子邮件那一章去描述,而CNAME是某个A记录的别名,例如在a <BR>snc.hosts中加入 <BR> <BR> www2 CNAME mail <BR> <BR> 表示www2.asnc.edu.cn是mail.asnc.edu.cn的另外一个名字。 <BR> <BR> 注意有两种给一个地址赋以多个名字的办法,一种是用两个地址栏相同的A记录,另一 <BR>种是用CNAME,但是只有CNAME才能产生别名关系。这会在http server的设置中产生一些 <BR>影响,详细内容见WWW server那一节。 <BR> <BR> 6.2 文件传输服务 <BR> <BR> 文件传输即ftp服务,在各种intranet的服务中它应该是最容易配置的。一般来说,它 <BR>也非常容易管理。我们这里使用的是wu-ftpd和一些派生的ftp软件。实际上,如果要做 <BR>ftp站点,Linux是非常合适的,因为它的磁盘操作性能很高。 <BR> <BR> 6.2.1 wu-ftpd的配置和管理 <BR> <BR> wu-ftpd是Linux缺省的ftp服务器,几乎每个Linux发行版本都会包含这个产品。通常 <BR>安装系统的时候就会安装这个软件,你可以用rpm –q wu-ftpd来检查是否安装了这个程 <BR>序。如果没有,你仍然可以自己安装这个产品。 <BR> <BR> wu-ftpd程序是通过inetd程序启动的,要使用它,你应该首先确定/etc/services文件 <BR>中包含这样一行: <BR> <BR> ftp 21/tcp <BR> <BR> <BR> 然后确定/etc/inetd.conf包括这样的行: <BR> <BR> ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a <BR> <BR> <BR> 重新启动inetd就可以提供服务了。 <BR> <BR> 因为in.ftpd程序是通过/usr/sbin/tcpd程序启动,所以以前介绍的身份控制文件hos <BR>ts.allow和hosts.deny程序对它仍然起作用。另外,ftp程序还有一些额外的身份检查。 <BR> <BR> 前面我们指出过,/etc/passwd文件的最后一个栏目是用户的登录shell,即用户登录 <BR>完成后执行的第一个程序,在ftp服务器启动的时候,它检查用户的shell程序,并且和 <BR>/etc/shells文件列出的程序比较,只有在shell包含在/etc/shells里面的用户才能成功 <BR>登录ftp,否则将被弹回。 <BR> <BR> 登录时的另外一个检查是用户名是否是anonymous或者ftp,如果是,那么in.ftpd程序 <BR>将认为这是一个匿名用户,这种情况下,它检查/etc/passwd中是否有名叫ftp用户,如 <BR>果存在,in.ftpd程序将用户放到ftp用户的宿主目录中,并且执行一个chroot命令,将 <BR>这个目录变成用户的根目录;如果不是匿名用户,那就把用户放到他的正确宿主目录中 <BR>,也不执行chroot命令。显然,由于chroot的作用,匿名用户无法越出ftp用户的宿主目 <BR>录,即使用连接也不行。但是这带来了一个问题,就是ftp用户无法访问/bin和/usr/bi <BR>n,/lib,/usr/lib目录,因此无法使用UNIX命令。解决的办法是在匿名用户的根目录( <BR>比如/ftp)下建立bin和lib目录,然后把最常用的一些命令拷贝到里面去,通常安装系 <BR>统的时候,安装程序会替你作这件事情,不过它是自动建立在/home/ftp下面,如果你更 <BR>改了ftp用户的目录,请把/home/ftp下面的bin和lib目录移动过去。 <BR> <BR> 理解了wu-ftpd的工作方式之后,配置它就并不复杂了。wu-ftpd程序有一组配置文件 <BR>,最重要的是/etc/ftpaccess,这个文件决定了大部分的ftp服务器行为,另外,/etc/ <BR>ftpconversions,/etc/ftphosts,/etc/ftpusers,/etc/ftpgroups也很重要。 <BR> <BR> 让我们先看一下/etc/ftpaccess的语法,通常ftpaccess支持下列的句子(注意,这里 <BR>只列出了绝对必须理解的句子,其他的你可以简单地使用缺省值。Linux的一大好处就是 <BR>配置可以在原来的文件上改来改去): <BR> <BR> class <BR> <BR> 定义可以访问服务器的一类用户。格式是class [类名] [用户类型] [地址组] <BR> <BR> 类名是任意的字符串,用它来标志一个类,用户类型是用逗号分开一个列表,表中的 <BR>项目可以是anonymous,guest和real。anonymous就是匿名用户,real表示一切在服务器 <BR>上有实际账户的用户,而guest用户比较奇怪,它是用guestgroup限制的真实用户,一般 <BR>我们并不需要这个功能,如果你对此感兴趣,参考ftpd的文档。地址组是个通配符,表 <BR>示用户可以登录的地点。 <BR> <BR> 例如,class myclass real * 将允许真实用户从任何地方登录服务器,而class hos <BR>t anonymous 192.168.42.* 意味着允许匿名用户从192.168.42.0-255来登录;当然cla <BR>ss all guest,real,anonymous * 意味着所有人可以从任何地方登录。 <BR> <BR> 可以有任意多个class子句。 <BR> <BR> deny <BR> <BR> 禁止用户从某些主机登录。语法是deny [地址组] [信息文件名字],其中信息文件名 <BR>字是拒绝服务时显示的内容。例如,deny host1.edu.cn /ftp/message_deny将在有人试 <BR>图从host1.edu.cn启用本机的ftp服务时拒绝并显示/ftp/message_deny文件的名字。 <BR> <BR> 如果想拒绝没有域名的机器登录,在地址组中使用 ! nameserved。 <BR> <BR> limit <BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -