Archive for 十二月, 2007


命令行下也玩IPsec

   我们先来看看它的参数,如下所示:

   ipsecpol [\computername] [-?] [-f FilterList] [-n NegotiationPolicyList] [-t TunnelAddress] [-a AuthMethodList] [-u] [-soft] [{-dialup | -lan}] [-1s SecurityMethodList] [-1k Phase1RekeyAfter] [-1p] [-confirm] [-w TYPE:DOMAIN] [-p PolicyName:PollInterval] [-r RuleName] [-x] [-y] [-o]

   下面我们对常用的几个参数进行解释:
   -f FilterList:过滤列表,这个列表的格式应该是下面这样的:A.B.C.D/mask:port=A.B.C.D/mask:port:protocol,左边的A.B.C.D代表的是源IP,右边的是目标IP,mask代表子网掩码,port是端口,protocol是协议类型。我们举个例子,比如我的IP是166.111.30.30,我要把来自IP地址是166.111.40.40对我的Tcp端口7626请求的数据包过滤。那么这个过滤列表就应该是这样的:
   166.111.40.40/255.255.252.0:7626=166.111.30.30/255.255.252.0:7626:tcp

   当然这里我们还可以使用通配符,用*代表任何IP地址,用0代表我自己的IP地址,我们还可以使用+符号,比如0+*:139:TCP代表过滤自己主机和任何来源ip的tcp端口139数据包;*+0:139:TCP代表过滤任何来源IP对自己主机tcp129端口发送的数据包。

   -w TYPE:DOMAIN:这个是策略写入的位置,可以是注册表,这样类型是REG;也可以存储在目录里,这样的类型是DS。我们一般选择是REG;

   -p PolicyName:PollInterval:这个是策略的名称,比如“Block RPC Attack Vectors”;

   -r RuleName:这个是规则的名称,比如“Block Outbound TCP 445 Rule”;

   -x:激活(指派)刚才配置的IP安全策略。

   -y:不指派配置的IP安全策略。

   -o:删除刚才设置的安全策略。

   我们一般用的参数也就这样几个,其他的大家可以参看帮助文件。

   三:具体实例

   还是来讲实例吧,我们结合“冲击波”蠕虫来进行解说。“冲击波”利用的端口有Tcp135、4444端口,Udp69端口,此外它还会发送Icmp数据包。此外与RcpDcom有关的端口是Tcp135、445、139、593端口,Udp135、137、138、445端口。

   如果我们要防范“冲击波”蠕虫,我们需要把来自外部对以上标明端口的连接过滤,为了不影响网络速度,还要禁止Icmp包。假如我们感染了,还要防止自己主机向外部发送数据,因此我们来创建策略,策略名比如是:Anti Blaster,那么我们所要的命令如下:

   ipsecpol -w REG -p "Anti Blaster" -r "Block Inbound TCP 135 Rule" -f *+0:135:TCP -n  BLOCK
   ipsecpol -w REG -p "Anti Blaster" -r "Block Outbound TCP 135 Rule" -f 0+*:135:TCP -n BLOCK
   ipsecpol -w REG -p "Anti Blaster" -r "Block Inbound TCP 4444 Rule" -f *+0:4444:TCP -n BLOCK
   ipsecpol -w REG -p "Anti Blaster" -r "Block Outbound TCP 4444 Rule" -f 0+*:4444:TCP -n BLOCK
   ipsecpol -w REG -p "Anti Blaster" -r "Block Inbound UDP 69 TFTP Rule" -f *+0:69:UDP -n BLOCK
   ipsecpol -w REG -p "Anti Blaster" -r "Block Outbound UDP 69 TFTP Rule" -f 0+*:69:UDP -n BLOCK
   ipsecpol -w REG -p "Anti Blaster" -r "Block Inbound ICMP Rule" -f *+0:0:ICMP -n BLOCK
   ipsecpol -w REG -p "Anti Blaster" -r "Block Outbound ICMP Rule" -f 0+*:0:ICMP -n BLOCK

   最后,我们还要激活这个安全策略,命令是:ipsecpol -w REG -p "Anti Blaster" –x
   更保险点的是,禁止对Rpc相关端口的连接,这样我们运行的命令如下:

   ipsecpol -w REG -p "Block RPC Attack" -r "Block Inbound UDP 135 Rule" -f *+0:135:UDP -n BLOCK
   ipsecpol -w REG -p "Block RPC Attack" -r "Block Inbound TCP 135 Rule" -f *+0:135:TCP -n BLOCK
   ipsecpol -w REG -p "Block RPC Attack" -r "Block Inbound UDP 137 Rule" -f *+0:137:UDP -n BLOCK
   ipsecpol -w REG -p "Block RPC Attack" -r "Block Inbound UDP 138 Rule" -f *+0:138:UDP -n BLOCK
   ipsecpol -w REG -p "Block RPC Attack" -r "Block Inbound TCP 139 Rule" -f *+0:139:TCP -n BLOCK
   ipsecpol -w REG -p "Block RPC Attack" -r "Block Inbound TCP 445 Rule" -f *+0:445:TCP -n BLOCK
   ipsecpol -w REG -p "Block RPC Attack" -r "Block Inbound UDP 445 Rule" -f *+0:445:UDP -n BLOCK
   ipsecpol -w REG -p "Block RPC Attack" -r "Block Inbound TCP 593 Rule" -f *+0:593:TCP -n BLOCK

   然后再用命令ipsecpol -w REG -p "Block RPC Attack" –x来激活安全策略。上面只过滤了传入的连接请求,如果是过滤传出的,那么只要把*和0互换,把Inbound改成Outbound就可以了。

   那如果“冲击波”过去了,我们不需要这样的安全策略的时候怎么办,当然你也可以在MMC(控制台)里删除掉,也可以用命令行来实现,比如我们要删除刚才防止冲击波的策略,具体命令是:

   ipsecpol -w REG -p "Anti Blaster" –y //先用-y参数不指派这个策略
   ipsecpol -w REG -p "Anti Blaster" –o //然后用-o参数删除

   我们可以写一个批处理来实现这样的功能,这个批处理可以在win光盘里找到,以后要设置策略时,只要把端口修改下就可以了,即节省了时间,效率也大大提高了

  1、删除或更名以下危险的ASP组件:

  WScript.Shell、WScript.Shell.1、Wscript.Network、Wscript.Network.1、adodb.stream、Shell.application

  开始——->运行———>Regedit,打开注册表编辑器,按Ctrl+F查找,依次输入以上 Wscript.Shell等组件名称以及相应的ClassID,然后进行删除或者更改名称(这里建议大家更名,如果有部分网页ASP程序利用了上面的组 件的话呢,只需在将写ASP代码的时候用我们更改后的组件名称即可正常使用。当然如果你确信你的ASP程序中没有用到以上组件,还是直接删除心中踏实一些 ^_^,按常规一般来说是不会做到以上这些组件的。删除或更名后,iisreset重启IIS后即可升效。)

  [注意:由于Adodb.Stream这个组件有很多网页中将用到,所以如果你的服务器是开虚拟主机的话,建议酢情处理。]

  2、关于 File System Object (classid:0D43FE01-F093-11CF-8940-00A0C9054228)即常说的FSO的安全问题,如果您的服务器必需要用到 FSO的话,(部分虚拟主机服务器一般需开FSO功能)可以参照本人的另一篇关于FSO安全解决办法的文章:Microsoft Windows 2000 Server FSO 安全隐患解决办法。如果您确信不要用到的话,可以直接反注册此组件即可。

  3、直接反注册、卸载这些危险组件的方法:(实用于不想用①及②类此类烦琐的方法)

  卸载wscript.shell对象,在cmd下或直接运行:regsvr32 /u %windir%system32WSHom.Ocx

  卸载FSO对象,在cmd下或直接运行:regsvr32.exe /u %windir%system32scrrun.dll

  卸载stream对象,在cmd下或直接运行: regsvr32 /s /u "C:Program FilesCommon FilesSystemadomsado15.dll"

  如果想恢复的话只需要去掉 /U 即可重新再注册以上相关ASP组件例如:regsvr32.exe %windir%system32scrrun.dll

  4、关于Webshell中利用set domainObject = GetObject("WinNT://.")来获取服务器的进程、服务以及用户等信息的防范,大家可以将服务中的Workstation[提供网络链结 和通讯]即Lanmanworkstation服务停止并禁用即可。此处理后,Webshell显示进程处将为空白。

  首先你必须下载几个软件:JDK、Apache和Tomcat。JDK(Java Development Kit )是一切java应用程序的基础,可以说,所有的java应用程序是构建在这个之上的。它是一组API,也可以说是一些java Class。建议使用J2RE,现在基本上是用J2EE的人比较多。

  相信大家都听说过,JAVA的可移植性非常好,能够适用于各种系统平台,所以很多企业出于成本或者安全的考虑也有把JSP建立在LINUX上面的,一些老资力的技术员都认为LINUX+TOMCAT+APACHE是完美的WEB平台,不过我觉得也要考虑到在LINUX下面做开发的技术人员不多而且开发难度也较WINDOWS平台大,开发效率更是受到很大限制,所以把WEB建立在LINUX平台实际上在后期开发维护方面的费用也是非常大的,所以我还是说一下在WIN2000下如何安装JSP。

一:JDK(或J2EE)的安装

  下载JDK

  可以去SUN的官方网站下载JDK或者J2EE,使用方法类似,这里以JDK为例进行讲解:java.sun.com,国内也有很多地方可以下。
  在Windows下,直接运行.exe文件,安装到一个目录,如C:jdk。

  配置系统

  桌面上选择“我的电脑”,右键-高级-环境变量,
  在“系统变量”处按“新建”
  在变量名中输入:CLASSPATH,变量值中输入:
  C:JDKLIBdt.JAR;C:JDKLIBTOOLS.JAR;C:JDKBIN
  配置完后重新启动计算机,环境变量就会生效。

  测试

  (1)用文本编辑器写一个简单的java程序:
  public class HelloWorld {
  public static void main(String args[]) {
  System.out.println("Hello World!");
  }
  }
  这个例子就是著名的“Hello World”,它的功能就是显示“Hello World”。
  注意:该文件名称必须为“HelloWorld.java”,大小写也区分。
  (2)编译:在dos命令提示符下执行:(注意大小写)
  javac HelloWorld.java
  如果正常的话,将生成HelloWorld.class文件。
  (3)运行:在dos命令提示符下执行:(注意大小写)
  java HelloWorld
  好了,运行java HelloWorld应该会出现伟大的“Hello World”了。

  到这一步,你已经成功配置好了JDK,但是JDK还不能执行网页脚本,还要再安装Tomcat。

二:安装Tomcat

  对于初学者来说,要执行JSP和Servlet,Tomcat是一个很不错的选择。Tomcat是Apache组织的产品,sun公司对它的支持也相当不错。

  下载

  下载地址为JAVA官方站点:jakarta.apache.org,国内也比较多。
  从这个地址可以下载:http://jakarta.apache.org/builds/tomcat/release/
  下载完,解压到一个目录,以C:Tomcat作为例子。

  配置

  桌面上选择“我的电脑”,右键-高级-环境变量,
  在“系统变量”点“新建”
  在变量名中输入:JAVA_HOME,变量值中输入:C:JDK然后确定;
  在“系统变量”点“新建”
  在变量名中输入:TOMCAT_HOME,变量值中输入:C: Tomcat然后确定;
  好了,配置完了,要重新启动计算机后,环境变量才能有效的。
  注意,对于Tomcat其他设置,如果没有必要,是可以不改的,如果对你的改动没有把握,还是建议不要改动。

  测试

  (1)启动tomcat:
  在C: Tomcatin下有一个:startup.bat,运行它,将出现一个Dos窗口。
  (2)浏览
  在浏览器中输入:http://localhost:8080/看看有什么效果(Tomcat默认端口为8080,在不冲突的前提下,你可以改动的),应该会看到一只小猫或者叫做老虎
  (3)运行
  在这个页面有JSP Examples和 Servlet Examples, 好了,自己测试运行它们吧。
  (4)退出tomcat
  在C: Tomcatin下有一个:shutdown.bat,运行它,将关闭Dos窗口(不过我一般都是直接关闭这个DOS窗口)。

  OK,如果你只是要建立一个JSP服务器,做到这样就OK了,如果还要添加数据库功能,那就还要再安装配置一个MYSQL或者也可以通过JDBC来访问其他符合开放标准的数据库。

创建SSL身份验证证书

    要想对IIS中的指定网站信息建立加密传输机制的话,首先需要为该目标网站创建一个SSL身份验证证书,该证书的创建操作只需要通过Windows 2003服务器操作系统内置的“Web服务器证书向导”功能就能轻松完成;下面就是为目标网站创建证书请求文件的具体操作步骤:

    依次单击“开始”/“设置”/“控制面板”命令,在弹出的系统控制面板窗口中,双击“管理工具”图标,并在其后界面中双击“Internet 信息服务(IIS)管理器”图标,打开系统的IIS控制台界面。

    在该界面的左侧窗格区域中,依次展开“本地计算机”/“网站”分支,再用鼠标右键单击该分支下面的目标网站名称,从弹出的右键菜单中执行“属性”命令,打开目标网站的属性设置界面。

    单击该界面中的“目录安全性”标签,并在对应标签页面的“安全通信”设置项处,单击“服务器证书”按钮,弹出如图1所示的Web服务器证书向导窗口;继续单击该窗口中的“下一步”按钮,在随后出现的服务器证书对话框中,我们可以为目标网站选择一个分配证书的方法,在这里我们可以将“新建证书”选项选中,并单击“下一步”按钮。

图1

    接下来将“现在准备证书请求,但稍后发送”项目选中,然后为新证书设置一个合适的名称,同时在“位长”列表框中为新证书设置一个合适的密钥位长;下面再输入好使用证书的单位以及部门信息,然后输入站点的公用名称,一般来说要是该站点位于Internet上的话,就应该输入该站点的完整域名信息。完成好上面的所有信息输入操作后,Web服务器证书向导窗口将会弹出如图2所示的界面,提示我们指定一个合适的文本文件来保存证书请求信息,默认状态下系统会自动在Windows安装根目录下创建一个名为“certreq.txt”的文本文件来作为证书请求文件,最后单击向导窗口中的“完成”按钮就能结束SSL身份验证证书的创建任务了。

图2

手工添加证书服务

    由于Windows 2003服务器操作系统在缺省状态下并不支持证书服务,这样的话安装在该系统中的网站自然就无法申请网站证书;为了能够正确申请网站证书,我们需要按照下面的方法,先将证书服务启动好:

    依次单击“开始”/“设置”/“控制面板”命令,在弹出的系统控制面板窗口中,双击“添加或删除程序”图标,再其后出现的窗口中再单击“添加/删除Windows组件”标签,在弹出的如图3所示的标签页面中将“证书服务” 项目选中,随后系统打开一个提示界面提醒我们一旦安装好了证书服务后,将无法更改域成员身份以及计算机名称,同时询问我们是否需要继续下面的操作。

图3

    此时我们可以单击提示界面中的“是”按钮,再单击一下“下一步”按钮,并将新对话框中的“独立根CA”项目选中,同时继续单击“下一步”按钮,进入到如图4所示的CA识别信息对话框;在该对话框的“公用名称”文本框中输入CA的名称信息,在有效期限处设置好证书的具体生效时间,默认情况下证书的有效期限为5年。

图4

    接下来单击“下一步”按钮,Windows系统将会自动创建好密钥信息,然后会弹出“证书数据库设置”对话框,在该对话框的“证书数据库”文本框中指定好证书数据库的存放位置,在该对话框的“证书数据库日志”文本框中指定好证书数据库日志的存放位置,然后再单击“下一步”按钮;随后系统将会自动按照我们的设置要求进行配置系统,同时提示我们插入Windows 2003服务器操作系统的安装光盘,一旦插入安装光盘后,Windows系统就会自动完成证书服务的其他配置任务。

申请高级网站证书

    为了让目标网站使用SSL加密机制,来保证网站信息在传输过程中不被人偷窥,我们需要申请一个高级网站证书;在申请网站证书时,我们可以按照如下步骤来操作:

    首先打开系统的资源管理器窗口,在该窗口中双击Windows安装目录下面的system32文件夹,并将该文件夹下面的Certsrv子文件夹复制到目标网站所对应的根目录下。

    接着打开IE浏览器窗口,并在该窗口的地址栏中输入“http://xxx.xxx.xxx.xxx/certsrv/default.asp”(其中xxx.xxx.xxx.xxx为目标网站的网址或IP地址),进入到如图5所示的Microsoft证书服务页面;单击该页面中的“申请一个证书”超级链接,并在其后出现的链接页面中再单击“高级证书申请”链接。

图5

    接下来再单击一下“使用base64编码的CMC或PKCS #10文件提交一个证书申请,或使用base64编码的PKCS #7文件续订证书申请”超级链接,打开如图6所示的申请页面;下面打开前面已经创建好的证书请求文件“certreq.txt”,将该文件中的内容直接复制粘贴到图6界面中的“保存的申请”文本框中,再单击一下“提交”按钮就能完成高级网站证书的申请任务。

图6

    高级网站证书一旦申请成功后,系统将会自动提示我们必须等待管理员颁发自己申请的证书,只有颁发过证书后才能使之生效。在颁发证书时,我们可以按照下面的步骤来操作:

    依次单击“开始”/“设置”/“控制面板”命令,在弹出的系统控制面板窗口中,双击“证书颁发机构”图标,在其后界面的左侧窗格区域中选中“挂起的申请”选项,在对应该选项右侧的窗格区域中用鼠标右键单击前面申请好的证书,并依次执行右键菜单中的“所有任务”/“颁发”命令。

    下面再选中“颁发的证书”选项,并在对应该选项右侧的窗格区域中用鼠标左键双击前面申请好的证书,在随后弹出的证书对话框中单击“详细信息”标签,打开如图7所示的标签页面;接着单击该标签页面中的“复制到文件”按钮,打开证书导出向导界面,根据界面提示指定好具体的文件名称,结束证书的颁发任务。

图7

将证书导入网站目录

    为了让目标网站所对应的目录文件信息全部使用SSL加密传输功能,我们需要将前面申请好的网站证书导入到目标网站所对应的目录中;在导入网站证书时,可以按照下面的步骤来操作:

    依次单击“开始”/“设置”/“控制面板”命令,在弹出的系统控制面板窗口中,双击“管理工具”图标,并在其后界面中双击“Internet 信息服务(IIS)管理器”图标,打开系统的IIS控制台界面。

    在该界面的左侧窗格区域中,依次展开“本地计算机”/“网站”分支,再用鼠标右键单击该分支下面的目标网站名称,从弹出的右键菜单中执行“属性”命令,打开目标网站的属性设置界面。
  
    单击该界面中的“目录安全性”标签,并在对应标签页面的“安全通信”设置项处,单击“服务器证书”按钮,打开IIS证书向导设置窗口,然后选择“分配现有证书”选项,再将前面颁发好的证书选中,最后在如图8所示的界面中指定好网站应该使用的SSL端口,缺省状态下该端口号码为“443”,完成上面的设置后,再单击“完成”按钮返回到目标网站的“目录安全性”标签页面。

图8

启用网站的身份验证功能

    做好了上面的各项准备工作后,目标网站的SSL安全加密功能仍然还没有生效,此时我们还需要对该网站进行进一步的配置。按照前面的方法,打开目标网站的目录安全标签页面,并单击“安全通信”处的“编辑”按钮,进入到如图9所示的设置界面,将该界面中的“要求安全通道(SSL)”复选项选中,并将随后自动激活的“要求128位加密”项目选中,再单击“确定”按钮返回到目录安全标签页面。

图9

    接下来在“身份验证和访问控制”设置项处单击“编辑”按钮,打开身份验证方法设置窗口,将该窗口中的“启用匿名访问”选项以及“集成Windows身份验证”选项的选中状态取消,再将“基本身份验证”选项选中,随后系统将会自动弹出一提示界面,单击该界面中的“是”按钮,最后单击“确定”按钮返回到目录安全标签页面。

    下面再单击目标网站属性界面中的“网站”标签,并在对应标签页面的SSL端口文本框中输入事先设置好的SSL端口号码,最后单击一下“确定”按钮就可以了。以后我们再次访问目标网站中的信息时,必须使用形如“https://xxx.xxx.xxx.xxx”格式的URL地址(其中xxx.xxx.xxx.xxx为目标网站的域名地址或IP地址),才能看到网站中的具体内容。不过,在第一次通过HTTPS方式访问目标站点时,浏览器将会自动打开一个安全警告窗口来提示我们是否同意当前证书,我们单击一下“是”按钮来浏览网站信息时,目标网站中的信息就会在传输过程中被自动加密,其他任何人都不会偷窥到其中的内容,这样IIS信息访问就会更加安全。

  接着在DOS命令行提示符下,输入字符串命令“Regsvr32 /S jscript.dll”,单击回车键后,系统就会自动重新注册动态链接文件“jscript.dll”;等到“jscript.dll”文件被注册成功之后,再在MS-DOS命令行中依次执行字符串命令
“Regsvr32 /S nusrmgr.cpl”、
“Regsvr32 /S /i mshtml.dll”、
“Regsvr32 /S themeui.dll”、
“Regsvr32 /S Vbscript.dll”,
来依次重新注册动态链接文件“nusrmgr.cpl”、“mshtml.dll”、“themeui.dll”、“Vbscript.dll”,最后将服务器系统重新启动一下

  一、安装PHP4

  我们需要安装的是win32版本,下载当然也是win32版本 php4.3.0-win32.zip 

  1.下载后,解压到c:php目录下。 

  2. 把c:php目录下的php4ts.dll php4ts.lib文件都拷贝到c:winntsystem32目录下(即window 2000系统目录下的system32目录)。 

  3. 修改php.ini文件 重启完后,把c:php目录下的php.ini-dist文件改名为php.ini 用记事本或其它可编辑文本的软件把它打开。 

  3.1找到register_globals = Off 改为register_globals = On这一步是为了使部分旧的PHP程序能正常运行; 

  3.2找到 extension_dir = ./ 把它改为extension_dir = c:phpextensions刚刚的修改是指定php4扩展dll文件存放的路径 由于php4默认所带的php.ini-dist中,是关掉了所以的扩展dll的功能( Windows Extensions)

  ;extension=php_bz2.dll

  ;extension=php_cpdf.dll

  ;extension=php_crack.dll

  ;extension=php_curl.dll …..

  要做的就是把extension前面的分号去掉就行了,当然这样是不够的。因为有些extension在我们的系统是不能使用的,比如系统中没有安装 sql server的话,那么extension=php_mssql.dll就要用;(分号)把它注释掉;

  其中,PHP4带了两个GD扩展,请选用一个,另一个先用分号注释掉,以免出现函数无法注册的错误;

  如下面

  extension=php_gd.dll

  ;extension=php_gd2.dll 

  3.3 找到session.save_path,把这一项改为 session.save_path = c:tmp并在C盘建立一个TMP目录

  3.4把所有的extension=php_xxxx.dll前面的分号都去掉后。记得要保存刚刚的修改 并把php.ini文件放置在c:winnt目录下。

  二、安装MySql

  安装MySql 当然,我在MySql.com 下载的MySql是一个压缩包,要先解压出来;再点setup.exe安装;

  按默认安装,即安装在c:MySql下,安装完后,按“开始”菜单中的“运行”打进cmd进入dos窗口,进到c:MySqlbin 目录;

  运行mysqld-nt –install (将会出现一个Dos窗口,随即自动关闭!如果没有出任何信息,即安装到service成功!)

  从“开始”菜单“程序”=》“管理工具”=》“服务”,打开后,将会找到MySql,点击mouse右键 选择启动 回到刚刚的Dos窗口

  即c:MySqlbin目录下 运行mysqladmin -u root password 123 即把root用户的密码设置为123 这一步,如果没有出错,说明初始化root密码成功;

  当然从本机进入MySql是不需要用户名和密码,但用php 程序或是其它程序连接MySql时就要用到;

  测试进入 第一种方法:直接动行MySql进入MySql 的dos管理状态;

  第二种方法:运行MySql -uroot -p MySql将会提示让您输入密码,密码当然就是刚刚设置的123(当然,得按设置的密码喽,不一定得设置是123)

  出现: C:MySqlbin>MySql -uroot -p Enter password: ********** Welcome to the MySql monitor. Commands end with ; or g. Your MySQL connection id is 4 to server version: 3.27.44-nt Type ‘help;‘ or ‘h‘ for help. Type ‘c‘ to clear the buffer. mysql>

  即安装MySql成功。

  三、安装Apache 1.3.x 及 PHP运行设置

  1.首先下载Apache,Apache软件一般叫作apache_1_3_x.win32.exe。运行它。它会问你将Apache安装到什么地方,为他系统安全及操作容易,我们不要使用默认路径,你可以设为c:Apache或C:,因为马上你就要修改它的配置文件。

  如果安装没出什么错的话,Apache就可以用了。有很多readme文件可供参考,但仅有一个文件是讲Win32平台的,包括Window 9x和Windows NT。

  有两种方式使 PHP 工作于 Windows 下的 Apache 1.3.x。一种是 CGI 方式(php.exe),另一种是使用 Apache 模块 DLL。不管哪种方式都需要停止 Apache,编辑 httpd.conf 来配置 Apache 以加入PHP支持。

  值得在这里指出现在 Windows 下的 SAPI 模块更加稳定了,我们推荐使用模块方式,因为更加透明和安全。

  尽管有几种不同方法在 Apache 下配置 PHP,但是对新手来说还是非常简单易用的。有关更多的 httpd.conf 配置指令请参考 Apache 文档。

  如果你按照手工安装步骤一节中的说明把 PHP 解压缩到了 c:php 目录下,那么需要加入以下三行到 Apache 配置文件中以 CGI 方式安装:

  ScriptAlias /php/ "c:/php/"

  AddType application/x-httpd-php .php .phtml

  Action application/x-httpd-php "/php/php.exe"

  注意上面的第二行在原来的 httpd.conf 中就有的,不过被注释了。还有记住用你自己放置 PHP 的路径替换 c:/php/。

  警告

  在 CGI 方式下,你的服务器可能会受到几种攻击的影响。请学习如何防止攻击。

  如果你想在 Apache 中用模块方式使用 PHP,确认把 php4ts.dll 拷贝到 windows/system(Windows 9x/Me)或者 winnt/system32(Windows NT/2000)或者 windows/system32(Windows XP)目录下,覆盖原来的文件。然后在 Apache 配置文件 httpd.conf 中加入以下两行:

  用自己喜爱的编辑器打开 httpd.conf,找到 LoadModule 指令的部分,在其列表的最后部分加上如下一行,

  对 PHP 4:

  LoadModule php4_module c:/php/sapi/php4apache.dll

  对 PHP 5:

  LoadModule php5_module "c:/php/sapi/php5apache.dll"

  你可能发现在用 Windows Installer 安装了 Apache 之后需要为用 AddModule 指令定义 mod_php4.c。尤其是在定义了 ClearModuleList 指令时格外重要,向下滚动几行可以找到该指令。你将会看到 AddModule 项目的列表,在列表的最后加上这一行:

  AddModule mod_php4.c

  对于 PHP 5 则为:

  AddModule mod_php5.c

  搜索类似 # AddType allows you to tweak mime.types 的短语,你会找到一些 AddType 的项目,并且在列表的最后有这一行: AddType application/x-httpd-php .php。你可以在这里选择任何想用 PHP 解析的后缀。.php 只是所建议的一个。甚至可以包括 .html,也可以加上 .php3 来向下兼容。

  修改了配置文件之后记住重新启动 Apache,例如如果你的 Apache 是作为 Windows 的服务安装的,NET STOP APACHE 后面接上 NET START APACHE。或者用你通常使用的快捷方式。

  有两种方式使用源程序语法彩色显示特色,但是取决于你的安装方法。如果你配置了 Apache 的 SAPI 模块方式使用 PHP,那么在 httpd.conf 中(和插入 AddType application/x-httpd-php .php 是同一个位置)加入下面一行就可以使用本特色:AddType application/x-httpd-php-source .phps。

  如果你用 CGI 方式使用 PHP,那你需要用 show_source() 函数。建立一个 PHP 文件,加入以下代码:。用你想要显示源代码的文件名替换掉 original_php_script.php。

  注: 在 Windows-Apache 组合中,所有路径中的反斜线例如 "c:directoryfile.ext" 都必须转换成斜线,如 "c:/directory/file.ext"。

  四、实现Apache虚拟主机的两种方案

  简介:这里说的虚拟主机是指在一台机器上仅运行一个httpd后台程序 支持多个Apache服务器,如在公司财务部门有一台web服务器,名为 account.yourdomain.com,同时又想为sales部门建立网站,网站内容也 放在该机器上,通过sales.yourdomain.com访问,这就要用到虚拟主机设置。

  设置Apache虚拟主机通常有两种方案

  1.基于IP的虚拟主机

  这种方式需要在机器上设置IP别名,象上面的例子,在一台机器的 网卡上绑定多个IP地址去服务多个虚拟主机。 若该机器的IP地址为192.168.0.1(account.yourdomain.com),首先 你要设置IP别名(假设用192.168.0.2作为其别名IP)。加下面的行到 /etc/rc.d/rc.local,确保每次启动后自动运行。

  #/sbin/ifconfig eth0:0 192.168.0.2 netmask 255.255.255.0 broadcast

  192.168.0.255 up

  #/sbin/route add -host 192.168.0.2 eth0:0

  然后你需要设置/etd/httpd/conf/httpd.conf文件:

  ServerAdmin [email protected]

  DocumentRoot /home/httpd/sales.yourdomain.com

  ServerName sales.yourdomain.com

  ErrorLog /var/log/httpd/sales.yourdomain.com/error_log

  TransferLog /var/log/httpd/sales.yourdomain.com/access_log

  然后分别创建目录

  /home/httpd/sales.yourdomain.com,

  /var/log/httpd/sales.yourdomain.com

  放相应的网站内容到目录/home/httpd/sales.yourdomain.com下即可,并确保 你内部的DNS指定sales.yourdomain.com的A记录到IP地址192.168.0.2 。

  注:这种基于IP的虚拟主机有一个缺点,就是你需要更多的IP地址去服务各自的虚拟主机,如果你仅仅有一个IP地址,那么你将可以考虑用基于名字的虚拟主机方案。

  2.基于名字的虚拟主机:

  它的优势就是不需要更多的IP地址,容易配置,不需要其它软硬件,现代的浏览器大多都支持这种方式。与基于IP的虚拟主机一样,你需要编辑文件

  /etc/httpd/conf/httpd.conf

  NameVirtualHost 192.168.0.1

  ServerAdmin [email protected]

  DocumentRoot /home/httpd/sales.yourdomain.com

  ServerName sales.yourdomain.com

  ErrorLog /var/log/httpd/sales.yourdomain.com/error_log

  TransferLog /var/log/httpd/sales.yourdomain.com/access_log

  ServerAdmin [email protected]

  DocumentRoot /home/httpd/hr.yourdomain.com

  ServerName hr.yourdomain.com

  ErrorLog /var/log/httpd/hr.yourdomain.com/error_log

  TransferLog /var/log/hr.yourdomain.com/access_log

  注: 你需要加NameVirtualHost 指示在最前面,下面依次为各个虚拟主机,为了让它工作,你需要把sales.yourdomain.com, hr.yourdomain.com的DNS 都指向IP地址192.168.0.1

  上面的两种都将工作,如果是在外部网段,在互联网上提供WWW服务,你可能 没有足够的真实IP地址来支持多个虚拟主机,便可用基于名字的虚拟主机方案, 若是在内部网段上,你有较多的内部保留IP地址,将没有太大的区别。

xmas由来

耶稣降生在马棚中,这里连块干净的地方也找不到。圣母玛丽亚不得以只好把他放在马槽里。为了庆祝这一天,有了圣诞节。

马槽成为最富有特色的圣诞标志,而其中的稻草也成了来年吉祥的代表。

大雪纷飞的圣诞夜善良的农民将无家可归的孩子带回家中,满心感激的孩子临行前折了一段杉树枝插在地上,杉树枝立刻就变成一株小杉树。从此有了圣诞树。

当年小亚细亚米拉城的主教圣尼古拉斯曾经偷偷把三袋金子送给穷人的女儿做嫁妆。当他悄悄把金子从烟囱口扔进去时,有一袋恰巧掉进了凉在壁炉上的长统袜子里。于是,有了圣诞老人和装在长统袜子中的圣诞礼物。

这就是圣诞节。代表温暖的力量。

“急救”受损Windows系统

  1、重注册DLL文件

  Windows系统有时之所以会频繁受到损伤,主要是许多应用程序常常共享调用一些DLL文件,一旦有的应用程序在使用完毕被自动卸载掉后,这些应用程序所调用的DLL文件往往也会跟着被删除掉了,这么一来Windows系统或系统中的其他应用程序再次调用那些共享了的DLL文件时,就自然会发生错误现象了。

  在急救那些由于系统DLL文件丢失引起的Windows系统运行不正常故障时,我们根本不需要重新安装操作系统,只需要对那些已经丢失了的DLL文件进行一下重新注册,就能让系统恢复正常运行状态了。考虑到我们并不知道究竟是哪一个或哪几个DLL文件被损坏了或丢失了,我们不妨通过下面的方法,来对系统所有的DLL文件都重新注册一下,而不需要单独对某一个或某几个DLL文件进行注册:

  首先打开类似记事本这样的文件编辑程序,然后在对应的程序界面中输入如下命令行代码:

  @echooff

  for%1in(%windir%system32*.dll)doregsvr32.exe/s%1

  将上面的命令行代码保存成一个扩展名为BAT的批处理文件,例如这里笔者假设将该代码内容保存为了repair.bat文件;

  其次为repair.bat文件创建一个快捷图标,并将该快捷图标直接拖放到系统的桌面上,等到日后需要对系统中的所有DLL文件进行重新注册时,我们只需要双击repair.bat文件的快捷图标,系统就会自动开始对所有的DLL文件执行重新注册操作了。一旦所有DLL文件被重新注册过之后,此时我们不妨再尝试运行一下Windows系统,相信此时的系统肯定会十分正常了!

  2、恢复原始文件

  如果Windows系统不正常运行的故障是由于系统注册表被意外破坏引起的话,那么我们完全可以借助常规的copy命令,来将系统原始的注册表信息直接复制到系统对应的目录下,这样可以快速地实现恢复受损系统文件的目的。由于Windows系统第一次被安装成功后,原始的注册表信息都会被自动备份保存到系统安装目录下面的Repair子目录中,因此我们只要将Repair子目录下面的注册表信息直接复制到系统的配置目录中就可以了:

  如果本地计算机只安装了一个操作系统的话,那我们不妨借助Windows98启动光盘,来将系统先引导到DOS命令行状态;如果本地计算机中安装了两个以上操作系统的话,那只需要将系统切换另外一个能正常运行的系统中就可以了;

  接下来在DOS命令行状态,通过CD命令将当前目录切换到“%windir%Repair”子目录状态下,并依次执行如下字符串命令:

  copysam%windir%system32config

  copysystem%windir%system32config

  copysoftware%windir%system32config

  copydefault%windir%system32config

  copysecurity%windir%system32config

  一旦在执行上面的字符串命令过程中,系统弹出提示询问是否将以前的文件覆盖掉时,我们直接进行肯定回答就可以了。等到系统的注册表信息被所有原始注册表文件替换掉后,我们再次重新启动一下系统,相信此时系统肯定能正常运行了。

Solaris 平台的DNS服务器创建

    BIND是Solaris中最常用的DNS服务器。它是以包形式提供的,一般在系统的初始配置过程中安装,对于随Solaris 8提供的BIND 8,主要配置文件是/etc/named.conf,BIND4 以及更早的版本使用名为/etc/named.boot的配置文件。/etc/named.conf 文件负责控制DNS服务器的行为,它提供了以下关键词,用来定义操作声明:

acl——定义一个访问控制列表,哪些客户可以使用该服务器。
include ——读入一个包含声明的外部文件,该文件使用与/etc/named.conf相同的格式。这在配置文件非常大时是很有用的,可以将不同的部分分成在逻辑上相关的几个文件。
logging——确定在声明指定的日志文件中记录哪些服务器活动。
options——定义本地服务器的操作特征。
server——定义其他服务器的操作特征。
zone——创建本地DNS区域。
    在Solaris 中,in.named为进程域名服务器。通过网络初始化脚本S72inetsvc在level 2级上启动的,启动后,它读取/etc/named.conf以获取它所管理的区域和区域数据库文件。区域文件除了包含主机名到IP地址的映射外,还包含其他内容。域名服务器的配置过程包括下列步骤:
    1)注册一个域名
    2)创建一个主机名和ip地址的列表
    3)创建/etc/named.conf文件
    4)创建区域数据文件

  资源记录类型

    在区域数据文件中,信息是以特定的格式存储的。这些信息被定义为资源记录类型(RR)。常用的标准的资源记录说明如下:

SOA(管理开始)资源记录——在master file(就是bind4里的zone file)中用到。 
NS(名字服务器)资源记录——列出了域或区域中的名字服务器。
A (地址)资源记录——地址资源记录用于说明DNS 数据库中主机的IP地址。它可能即使用到绝对主机名(FQHN),也可能使用相对的主机名(短主机名)。
MX(邮件交换服务器)资源记录——MX资源记录负责域内的主机之间的邮件交换服务。
PTR(指示器)资源记录——通常用于逆向主机名的解析。
CNAME —— 用于定义主机的别名。

(1)几个必须的配置文件:

named.conf
named.ca
named.local
master file(就是bind4里的zone file) —- 在本文中用nanjing.org.cn和nanjing.org.cn.rev 两个文件。

    在这几个配置文件中,最主要的是named.conf,在/etc下, 它是named启动时缺省的启动文件。一个典型的named.conf文件至少包括options和zone,如: 

***//named.conf 文件内容 ***
—————————————————————
options {
directory "/var/named"; //数据库文件的位置,要创建named这个目录,
multiple-cnames yes;
pid-file "/etc/named.pid";
}; 
//type domin    source host/file backup file
zone "." in {
type hint; //这里hint表示为缓存服务器
file "named.ca";
}; 

zone "0.0.127.in-addr.arpa" in {
type master; //这里master表示为主dns server,
file "named.local";
}; 

zone "nanjing.org.cn" in {
type master;
file "nanjing.org.cn "; //这里的nanjing.org.cn就是你要创建的域,正向解析 ,
}; 

zone "107.155.61.in-addr.arpa" in {
type master;
file "nanjing.org.cn.rev "; // 反向解析,域为107.155.61,
}; 
———————————————————————
    在这里面,options定义master file存放的路径,对应于某一个域, named就会到这里找数据文件,如有一个www.nanjing.org.cn的require请求,named就会到/var/named下找nanjing.org.cn这个文件,查出www.nanjing.org.cn的ip。Zone定义一个域,如nanjing.org.cn这个域,type定义域名服务器的类型,master 说明这是一个主域名服务器,第一个zone定义本地服务器为它自己的回送域的主服务器,将地址127.0.0.1映射为localhost,几乎在所有类型的域名服务器里都可以看见这个域。第二个zone用来定义一个高速缓存初始化文件,在named.ca 里至少包含着根服务器的名字和地址(这些根服务器也会变化). 一般named.ca不需要修改,named.local里只需要修改SOA纪录里域和联系人。file定义nanjing.org.cn这个域的master file。

    在/var/named目录下创建如下几个数据库与/etc/named.conf文件中相对应文件named.ca,named.local,nanjing.org.cn 和 nanjing.org.cn.rev。 

***// nanjing.org.cn 文件内容 ***
————————————————————-
@ IN SOA dns.nanjing.org.cn.
root.dns.nanjing.org.cn. (
2000120101 ; Serial Number
10800; Refresh after 3 hours
3600 ; Retry after 1 hour
3600000 ; Expire after 6 weeks
86400 ) ; Minimum TTL of 1 day 
        IN NS dns
@     IN MX 10 mail
 
Localhost IN A 127.0.0.1
www IN A 61.155.107.131
dns IN A 61.155.107.131
mail IN A 61.155.107.132
ftp IN  CNAME  dns
————————————————————-
    这里面的@定义当前域,也就是nanjing.org.cn., IN定义这是一个inter-net类型的纪录,SOA(管理开始)标志一个授权域的开始,dns.nanjing.org.cn.为开创该域的服务器,可以用主域名服务器,root.dns.nanjing.org.cn.定义联系人,root后的.就是email里的@,括号里的几个数字定义和本域有关的几个参数,单位是秒,前四个参数用于辅域名服务器更新master file,其中;后面的是说明,serial number用于辅域名服务器判断主域名服务器的 master file是否更新,所以如果你有辅域名服务器,在每次修改 master file后就应该修改这个序列号,以便辅域名服务器更新这个域的master file. Refresh定义辅域名服务器刷新的时间,retry定义如果主服务器未响应,辅服务器重试的时间间隔,expire 定义这个域的过期时间,就是说如果辅服务器在连续42天里都没有从主服务器取到该域的信息,辅服务器就丢弃该域。第五个参数定义这个域在其他域名服务器的cache 里的有效期,过了这个时间其他的域名服务器就会到这里来重新查询相关的信息。 
DNS表明这个域的域名服务器是dns.nanjing.org.cn。NS纪录可以有多个;
 @  IN MX 10 mail表示:所有发给当前域的邮件全部转发到服务器mail上。
Localhost、www、dns和mail这四条A纪录的含义是将localhost解析到127.0.0.1 ;www.nanjing.org.cn和dns.nanjing.org.cn解析到61.155.107.131;将mail.nanjing.org.cn解析到61.155.107.132,定义ftp的别名为dns。

***// nanjing.org.cn.rev 文件内容 ***
该文件存放从IP地址到域名的映射信息,文件内容:
—————————————————————–
@ IN SOA dns.nanjing.org.cn.
 root.dns.nanjing.org.cn. (
  2000120101  ; Serial
  10800  ; Refresh
  1800  ; Retry
  3600000  ; Expire
  86400 ) ; Minimum
  IN NS dns.nanjing.org.cn.
131  IN  PTR dns.nanjing.org.cn.
132  IN  PTR  mail.nanjing.org.cn.
————————————————
语法说明:
131  IN  PTR    dns.nanjing.org.cn.
表示:当前域(即61.155.107)中地址为 131的服务器的域名为dns.nanjing.org.cn.
132意义同上,表示的服务器的域名为mail.nanjing.org.cn.
注意,此处服务器的域名要用绝对域名

***// named.ca 文件内容 ***
——————————————————–
;       This file holds the information on root name servers needed to
;       initialize cache of Internet domain name servers
;       (e.g. reference this file in the "cache  .  "
;       configuration file of BIND domain name servers).
;
;       This file is made available by InterNIC registration services
;       under anonymous FTP as
;           file                /domain/named.root
;           on server           FTP.RS.INTERNIC.NET
;       -OR- under Gopher at    RS.INTERNIC.NET
;           under menu          InterNIC Registration Services (NSI)
;              submenu          InterNIC Registration Archives
;           file                named.root
;
;       last update:    Aug 22, 2000
;       related version of root zone:   2000082200
;
;
; formerly NS.INTERNIC.NET
;
.                        3600000  IN  NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
;
; formerly NS1.ISI.EDU
;
.                        3600000      NS    B.ROOT-SERVERS.NET.
;
; formerly NS1.ISI.EDU
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107
;
; formerly C.PSI.NET
.  3600000  NS  C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET.  3600000  A  192.33.4.12
;
; formerly TERP.UMD.EDU
.  3600000  NS  D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET.  3600000  A  128.8.10.90
;
; formerly NS.NASA.ORG
;.  3600000  NS  E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET.  3600000  A  192.203.230.10
;
; formerly NS.ISC.ORG
.  3600000  NS  F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET.  3600000  A  192.5.5.241
;
; formerly NS.NIC.DDN.MIL
.  3600000  NS  G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET.  3600000  A  192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
.  3600000  NS  H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET.  3600000  A  128.63.2.53
———————————————————-
    说明:named.ca文件一般不需要修改。

***// named.local 文件内容 ***
———————————————–
; SOA rec
@ IN  SOA  dns.nanjing.org.cn.  root.nanjing.org.cn. (
    2000120101 ; serial number
    10800 ; refresh every 3 hours
    10800 ; retry every 3 hours
    604800 ; expire after a week
    86400  ; TTL of 1 day
                                )
; Name Servers
IN  NS  dns.nanjing.org.cn.
;ip mappings
1  IN  PTR  localhost.nanjing.org.cn.
———————————————–
    说明:此文件无太多的意义,只定义 IP地址为127.0.0.1的服务器对应的域名为:localhost。

    至此一个基本的主域名服务器就建立好了。但需要特别说明的是,在master file里,dns.nanjing.org.cn.后面的.,这个. 表示这是一个完整的纪录,否则服务器就会自动给你加上当前域,例如:www表示www.nanjing.org.cn,而www.nanjing.org.cn就会变成www.nanjing.org.cn.nanjing.org.cn,正确的表示方法可以是www或www.nanjing.org.cn. 如果不给这个.足够的重视,就很容易出错。

(2)和DNS配置相关的文件

包括:/etc/defaultdomain、/etc/nsswitch.conf、/etc/resolv.conf 三个文件权限只需root可读即可。

1) /etc/defaultdomain

 "/etc/defaultdomain"文件给出确省域名,该文件内容为域名名称,例如:
——————————–  
nanjing.org.cn
———————————
 
表示缺省域名为" nanjing.org.cn ",以后仅使用某个主机名时,系统假设为缺省域中的主机。例如,"ping www"将被理解为"ping www.nanjing.org.cn "。

2) /etc/nsswitch.conf

    如果使用DNS,则必须在该文件的"HOST"一项中给出"DNS"。缺省为使用文件,即"FILES",该选项可以保留。
——————————————————– 
# /etc/nsswitch.files:
# An example file that could be copied over to /etc/nsswitch.conf; it
# does not use any naming service.
# "hosts:" and "services:" in this file are used only if the
# /etc/netconfig file has a "-" for nametoaddr_libs of "inet" transports.

passwd:     files
group:      files
hosts:      files   dns
networks:   files
protocols:  files
rpc:        files
ethers:     files
netmasks:   files
bootparams: files
publickey:  files
# At present there isn’t a ‘files’ backend for netgroup;  the system will
#   figure it out pretty quickly, and won’t use netgroups at all.
netgroup:   files
automount:  files
aliases:    files
services:   files
sendmailvars:   files
——————————————————–
hosts: files dns 表示:将使用/etc/inet/hosts文件解析主机,如果无法解析主机名将使用DNS。

3) /etc/resolv.conf

    该文件给出域名和域名服务器地址。
—————————————————-
; /etc/resolv.conf file
domain nanjing.org.cn ;域名
nameserver 61.155.107.131 ;域名服务器地址
;域名服务器地址可以给出多个
—————————————————–

  1 实例环境

  假设我们需要建立一台应用于以下情况的一个企业主域名服务器。
  1. 拥有一个C类网段地址,为202.101.55.0
  2. 企业域名注册为company.com。
  3. 域名服务器的IP定为202.101.55.55,主机名为dns.company.com。它同时充当Proxy.
  4. 企业网通过路由器与Internet连接。
  5. 要解析的服务器有:
  www.company.com (202.101.55.1) Web服务器
  mail.company.com (202.101.55.2) E-Mail服务器

  2 安装前的准备工作

  首先要保证在作为系中统有/etc/resolv.conf和/etc/hosts.conf这两个文件。/etc/resolv.conf文件中内容如下所示:
  domain compay.com
  nameserver 202.101.55.55
  其中第一行指出对于任何希望连到它上面的主机应该搜寻的域。而第二行指出了在哪个地址可以找到需要的域名服务大。/etc/hosts.conf的内容如下所示:
  order hosts,bind
  multi on
  这里的设置告诉主机名称先在/etc/hosts文件中搜索,然后再查询域名服务器。

  3 定义文件/etc/named.boot

  要使LINUX系统完成域名服务器的功能,则需要运行一个named的服务进程。这个服务进程可以在安装LINUX时选中。
  named启动时需要读取一个初始化文件–/etc/named.boot,这个文件是named的基本配置文件。它并不包含任何DNS数据,针对前面的假定环境,我们要在这个文件中写入:
  diretory /etc/named
  primary company.com db.company
  primary 0.0.127.IN-ADDR.ARPA db.127.0.0
  primary 55.101.202.IN-ADDR.ARPA db.202.101.55
  cache . db.cache

  下面我们逐行讲解这个文件中的内容:
  1) 在第一行中我们指定named从/etc/named目录下读取DNS数据文件。这个目录可以自行指定并创建,指定后将所有的DNS数据文件均存放在这个目录下;
  2) 第二行指定named作为company.com的主域名服务器,db.company文件中包含了所有*.my.com形式的域名的解析数据。
  3) 第三行则指定named作为127.0.0网段(本地loopback)地址的转换主服务器。其中db.127.0.0文件中包含了所有127.0.0.*形式的地址到域名的转换数据。
  4) 第四行指定named作为202.101.55网段地址转换主服务器,db.202.101.55文件中包含了所有以202.101.55.*形式的地址到域名的转换数据。
  5) 最后一行指定named从db.cache文件中获得Internet的顶层"根"服务器地址。要说明的是,这些数据文件的名称均是自行决定的。

  4 建立正向域名转换数据文件db.company

  根据/etc/named.boot文件中的定义,我们在/etc/named目录下建立文件db.company,并且在其中写入所有在company.com域内的主机节点。根据前面假定的环境,可以写入:

  @ IN SOA dns.company.com. root.dns.company.com.(
  200002011 ;文件版本号
  28800 ;刷新时间(秒)
  7200 ;重试时间(秒)
  3600000 ;终止时间(秒)
  86400) ;TTL生存时间(秒)
  IN NS dns.company.com
  www IN A 202.101.55.1
  email IN A 202.101.55.2
  proxy IN CNAME

  下面我们就逐句地理解这里的配置。

  A. SOA是主服务器设定文件中一定要设定的命令,我们通常将它放在文件的第一行。
  1) 最前面的符号"@"代表目前所管辖的域。
  2) 接着的"IN"代表地址类别,这里就是固定使用"IN"的。
  3) 接下来就是命令SOA。
  4) 接下来填入域名服务器,记住由于DNS数据文件的特殊格式规定,在最后一定要加上"·",在这个例子中,我们填入域名服务器:"dns.company.com."
  5) 接下来是域名服务器管理员的E-MAIL地址,但要注意的是,E-Mail地址中的分隔符"@"在这里用"·"来代替,在最后也要加上"。",在这里,我们相应写入:"root.dns.company.com."
  6) 接下来在括号内填上各种选项:
  文件版本号:当你修改这个文件的内容时,也要修改这个版本序列号。以此来区分是否有更新。
  更新时间:指定二级服务器向主服务器拷贝数据的更新时间周期。
  重试时间:指定二级服务器在更新出现通信故障时的重试时间。
  终止时间:指定二级服务器重新执行更新动作后仍然无法完成更新任务而终止更新的时间。
  生存时间:指定当域名服务器询问某个域名和其IP地址后,在域名服务器上放置的时间。
  注:二级服务器所设定的域名服务器是主服务器的备份主机。
  B. 在第二行中,我们用NS命令指定这个域的域名服务器。在这里我们指出这个域的域名服务器是"dns.company.com"。
  C. 接下来的两行我们使用A命令来指定域名与IP地址的对应关系。我们将Web服务器的域名www.company.com与其IP地址202.101.55.1对应起来;将E-Mail服务器的域名mail.company.com与其IP地址202.101.55.2对应起来。
  D. 最后一行,我们使用了CNAME命令为dns.company.com指定了另一个域名以供使用:proxy.company.com。

  5 建立反向域名转换数据文件db.127.0.0和db.202.101.55

  反向域名转换数据文件用来提供IP地址查询相应的DNS主机名,每个网段分别有一个数据文件。

  1). 网段127.0.0通常只有一个地址,那就是127.0.0.1 loopback地址。所以我们在db.127.0.0中写入的内容是:

  @ IN SOA dns.company.com. root.dns.company.com.(
  200002011 ;文件版本号
  28800 ;刷新时间(秒)
  7200 ;重试时间(秒)
  3600000 ;终止时间(秒)
  86400) ;TTL生存时间(秒)
  IN NS dns.company.com
  1 IN PTR localhost
  前面两名相信读者已经不会陌生,最后一句我们使用PTR命令让配置文件中的主机可以使用IP地址来知道所对应的域名。
  最前面的1代表127.0.0.1,对应的域名就是localhost。

  2).网段202.101.55就可能会存在更多的记录,前面假定环境下的设置应是:

  @ IN SOA dns.company.com. root.dns.company.com.(
  200002011 ;文件版本号
  28800 ;刷新时间(秒)
  7200 ;重试时间(秒)
  3600000 ;终止时间(秒)
  86400) ;TTL生存时间(秒)
  IN NS dns.company.com
  1 IN PTR www
  2 IN PTR email
  55 IN PTR dns
  55 IN PTR proxy

  6 获得db.cache文件

  在LINUX系统中通常在提供了一个named.ca的文件,该文件中Internet的顶层域名服务器,但是这个文件通常会发生变化,所以建议最好从Internet上下载最新的版本。该文件可以通过匿名FTP从ftp.rs.internic.net/domain下载,文件名是named.boot。将它拷贝一份为db.cache就可以了。

  7、测试域名服务器

  1) 使用nslookup测试

  nslookup命令的功能是查询域名服务器中的数据资料。下例就是使用它来测试域名服务器是否架设成功,其中斜体字代表要输入的内容。
  # nslookup
  Default server:dns.company.com
  Address:202.101.55.55 ;能出现这些信息代表成功
  〉 www
  server:dns.company.com
  Address:202.101.55.1

  2) 使用ping测试

  还有一种更简单的测试方法,那就是用ping命令,如果成功将显示:
    # ping www.company.com
    Ping www.company.com(202.101.55.1);56 data bytes
    64 bytes from 202.101.55.1:icmp_seq=0 ttl=255 time=1.3ms
    64 bytes from 202.101.55.1:icmp_seq=1 ttl=255 time=0.6ms
    64 bytes from 202.101.55.1:icmp_seq=2 ttl=255 time=0.6ms
    ……

  小技巧

  安装好域名服务器后,在内部使用域名进行远程连接时,会发现速度非常慢。其实只要/etc/hosts中加上所有内部的机器的域名就可以了