<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
 <channel>
  <title>伟大航路</title>
  <link>http://squallpig.blogbus.com</link>
  <description><![CDATA[linux&windows study]]></description>
  <generator> by blogbus.com </generator>
  <lastBuildDate>Thu, 01 Jan 1970 07:00:00 +0700</lastBuildDate>
  <image>
									<url>http://public.blogbus.com/profile/1/2/7/1234721/avatar_1234721_96.jpg</url>
									<title>伟大航路</title>
									<link>http://squallpig.blogbus.com</link>
								</image>  <item>
   <title>在防火墙环境下DNS的安装与设置</title>
   <description><![CDATA[<p><span style="FONT-SIZE: 13px"><font size="2">转至CU<br />天天　hutc.zj.cn   lh@Hutc.zj.cn<br />文章可以转载，但一定要保留我的MAIL<br /><br />经过几天的研究BIND，终于解决了我们单位的DNS问题。<br />在一般防火墙下，都是采用DMZ区内放服务器，外部访问DMZ区得到外部的IP，内部访问DMZ区时得到内部的IP。<br />如一个，<br />内部IP地址＜－－－＞放在DMZ的web服务器的IP＜－－－－－＞外部IP地址<br />192.168.1.1＜－－－＞192.168.0.1＜－－－－－＞211.202.49.1<br /><br /><br />从DNS上可以从以下四个方面解决：<br /><br />一.iptables应用<br />   1. 核心思想<br /><br />　　配置动态DNS服务器的核心思想是：在DNS服务器上运行多个BIND，每个BIND为来自不同区域的用户提供解析，因此每个BIND都应具有不同的配置文件和域文件，并且分别监听在不同的端口。在接到客户端DNS请求时，根据客户的ip地址将请求重定向不同的BIND服务端口。BIND响应时，再改写相应包的服务端口为标准的53端口。这样就可以根据客户端的ip地址将不同的解析结果返回给客户端。整个过程对于客户端来说都是透明的。实现的关键在于运行不同的BIND及运用iptables进行ip地址及端口改写操作。 <br /><br />  2 配置过程<br /><br />　　步骤1： 配置内核<br /><br />　　netfilter要求内核版本不低于2.3.5，在编译新内核时，要求选择和netfilter相关的项目。这些项目通常都是位于&quot;Networking options&quot;子项下。以2.4.0内核为例，我们应该选中的项目有：<br /><br />　　 </font></span><font size="2"> <br /></font></p><li><font size="2">Kernel/User netlink socket <br />　　[ ] Routing messages <br />　　&lt;*&gt;; Netlink device emulation <br />　　 </font></li><li><font size="2">Network packet filtering (replaces ipchains) <br />　　....... <br />　　然后，在&quot;IP: Netfilter Configuration ----&gt;;&quot;选中：<br /><br />　　 Connection tracking (required for masq/NAT) <br />　　 FTP protocol support<br />　　 IP tables support (required for filtering/masq/NAT)<br />　　 limit match support <br />　　 MAC address match support <br />　　 Netfilter MARK match support <br />　　 Multiple port match support <br />　　 TOS match support <br />　　 Connection state match support <br />　　 Packet filtering<br />　　 REJECT target support<br />　　 Full NAT <br />　　 MASQUERADE target support <br />　　 REDIRECT target support <br />　　 Packet mangling <br />　　 TOS target support <br />　　 MARK target support <br />　　 LOG target support<br />　　 ipchains (2.2-style) support<br />　　 ipfwadm (2.0-style) support <br /><br />　　其中最后两个项目可以不选，但是如果你比较怀念ipchains或者ipfwadm，你也可以将其选中，以便在2.4内核中使用ipchians或ipfwadm。但是需要注意的是，iptables是和ipchians/ipfwadm相对立的，在使用iptables的同时就不能同时使用ipchains/ipfwadm。编译成功后，这些模块文件都位于以下目录中<br />/lib/modules/2.4.0/kernel/net/ipv4/netfilter<br /><br />　　编译2.4.0的新内核时还应该注意要在&quot;<img src="http://bbs.chinaunix.net/images/smilies/titter.gif" align="absMiddle" border="0" />rocessor type and features&quot;中选择和你的CPU相对应的正确的CPU选项，否则新内核可能无法正常工作。<br /><br />　　步骤二、 配置BIND服务<br /><br />　　缺省地，BIND服务监听在53端口，我们可以通过配置让BIND运行在不同的ip及端口上。实现这一点并不复杂，假设我们的DNS服务器的ip地址是211.163.76.1，并且我们想区分CERNET及非CERNET的客户，这时我们必须运行两个BIND，使用不同的配置文件。可以在使用非标准监听端口的BIND的配置文件中用listen-on指定BIND监听的端口，比如：<br /><br />　　options {<br />　　listen-on port 54 {211.163.76.1;}<br />　　directory &quot;/var/named_cernet&quot;; <br />　　};<br />　　可以用named的-c 选项指定named读入不同的配置文件，比如：<br /><br />　　/usr/sbin/named -u named -c /etc/named_cernet.conf<br />　　<br />3、配置重定向规则<br /><br />　　假设监听在标准端口的BIND服务器为非CERNET客户提供DNS解析，监听在54端口的BIND服务器为CERNET服务器提供DNS解析，我们可以建立如下的规则脚本：<br /><br />　　#!/bin/bash<br /><br />　　#打开端口转发<br /><br />　　echo 1 &gt;; /proc/sys/net/ipv4/ip_forward <br />　　#加载相关的内核模块<br /><br />　　/sbin/modprobe iptable_filter<br />　　/sbin/modprobe ip_tables<br />　　/sbin/modprobe iptables_nat<br />　　#刷新所有规则<br /><br />　　/sbin/iptables -t nat -F<br />　　#加入来自CERNET的DNS请求转发规则，将其转发到本地54端口，CERNET地址列表可从www.nic.edu.cn/RS/ipstat/获得<br /><br />/sbin/iptables -t nat -A PREROUTING -p udp -s 163.105.0.0/16 --dport 53 -i eth0 -j REDIRECT 54 <br />/sbin/iptables -t nat -A PREROUTING -p tcp -s 163.105.0.0/16 --dport 53 -i eth0 -j REDIRECT 54<br />/sbin/iptables -t nat -A PREROUTING -p udp -s 166.111.0.0/16 --dport 53 -i eth0 -j REDIRECT 54 <br />/sbin/iptables -t nat -A PREROUTING -p tcp -s 166.111.0.0/16 --dport 53 -i eth0 -j REDIRECT 54<br />/sbin/iptables -t nat -A PREROUTING -p udp -s 202.4.128.0/19 --dport 53 -i eth0 -j REDIRECT 54 <br />/sbin/iptables -t nat -A PREROUTING -p tcp -s 202.4.128.0/19 --dport 53 -i eth0 -j REDIRECT 54<br />/sbin/iptables -t nat -A PREROUTING -p udp -s 202.112.0.0/15 --dport 53 -i eth0 -j REDIRECT 54 <br />/sbin/iptables -t nat -A PREROUTING -p tcp -s 202.112.0.0/15 --dport 53 -i eth0 -j REDIRECT 54<br />…<br />　　#将返回给CERNET DNS客户数据包的源端口(54端口)伪装成53端口<br /><br />　　/sbin/iptables -t nat -A POSTROUTING -p udp --sport 54 -o eth0 -j SNAT --to 211.163.76.1:53<br />　　/sbin/iptables -t nat -A POSTROUTING -p tcp --sport 54 -o eth0 -j SNAT --to 211.163.76.1:53<br />　　教育网网的朋友可以从这里下载该脚本，将脚本中的DNS_IP及CNET_PORT参数改成你自己的DNS服务器地址及监听端口即可。<br />4、运行动态DNS<br /><br />　　配置完成后我们启动DNS服务器，并且运行相应的规则脚本，我们的动态DNS服务器就可以正常工作了。<br /><br /><br /><br />二。利用bind9的cache纪录<br />　　1)、用户向浏览器提供要访问的域名；<br />　　2)、浏览器调用域名解析库对域名进行解析，由于CDN对域名解析过程进行了调整，<br />　　　　所以解析函数库一般得到的是该域名对应的CNAME记录，为了得到实际IP地址，<br />　　　浏览器需要再次对获得的CNAME域名进行解析以得到实际的IP地址；在此过程中，<br />　　　使用的全局负载均衡DNS解析，如根据地理位置信息解析对应的IP地址，使得用户能就近访问。<br />　　3)、此次解析得到CDN缓存服务器的IP地址，浏览器在得到实际的IP地址以后，<br />　　　向缓存服务器发出访问请求；<br />　　4)、缓存服务器根据浏览器提供的要访问的域名，通过Cache内部专用DNS解析<br />　　　得到此域名的实际IP地址，再由缓存服务器向此实际IP地址提交访问请求；<br />　　5)、缓存服务器从实际IP地址得得到内容以后，一方面在本地进行保存，<br />　　　　　以备以后使用，二方面把获取的数据返回给客户端，完成数据服务过程；<br />　　6)、客户端得到由缓存服务器返回的数据以后显示出来并完成整个浏览的数据请求过程。<br />　　　1、要加入CDN服务的网站，需要域名(如www.linuxaid.com.cn,地址202.99.11.120)解析权提供给CDN运营商，Linuxaid的域名解析记录只要把www主机的A记录改为CNAME并指向cache.cdn.com即可。cache.cdn.com是CDN网络自定义的缓存服务器的标识。在/var/named/linuxaid.com.cn域名解析记录中，由：<br /><br /><br />www             IN      A       202.99.11.120<br />改为<br />www             IN      CNAME   cache.cdn.com.<br /><br /><br /><br />　　2、CDN运营商得到域名解析权以后，得到域名的CNAME记录，指向CDN网络属下缓存服务器的域名，如cache.cdn.com，CDN网络的全局负载均衡DNS，需要把CNAME记录根据策略解析出IP地址，一般是给出就近访问的Cache地址。<br /><br />　　Bind 9的基本功能可以根据不同的源IP地址段解析对应的IP，实现根据地域就近访问的负载均衡，一般可以通过Bind 9的sortlist选项实现根据用户端IP地址返回最近的节点IP地址，具体的过程为：<br /><br />　　1)为cache.cdn.com设置多个A记录，/var/named/cdn.com 的内容如下：<br /><br /><br />$TTL 3600<br />@       IN      SOA             ns.cdn.com.     root.ns.cdn.com. (<br />                  2002090201      ;Serial num<br />                  10800           ;Refresh after 3 hours<br />                  3600            ;Retry<br />                  604800          ;Expire<br />                  1800            ;Time to live<br />                  )<br />        IN      NS              ns<br />www     IN      A               210.33.21.168<br />ns      IN      A               202.96.128.68<br />cache   IN      A               202.93.22.13    ;有多少个CACHE地址<br />cache   IN      A               210.21.30.90    ;就有多少个CACHE的A记录<br />cache   IN      A               211.99.13.47<br /><br /><br /><br />　　2) /etc/named.conf中的内容为：<br /><br /><br />options {<br />    directory &quot;/var/named&quot;;<br />      sortlist {<br />　#这一段表示当在本地执行查询时<br />　　#将按照202.93.22.13,210.21.30.90,211.99.13.47的顺序返回地址<br />          { localhost;<br />              { localnets;<br />                  202.93.22.13;<br />                  { 210.21.30.90; 211.99.13.47; };<br />              };<br />          };<br />#这一段表示当在202/8地址段进行DNS查询时<br />#将按照202.93.22.13,210.21.30.90,211.99.13.47的顺序返回地址<br />          { 202/8;<br />              { 202.93.22.13;<br />                  { 210.21.30.90; 211.99.13.47; };<br />              };<br />          };<br />#这一段表示当在211/8地址段进行DNS查询时<br />#将按照211.99.13.47,202.93.22.13,210.21.30.90的顺序返回地址，<br />#也就是211.99.13.47是最靠近查询地点的节点<br />          { 211/8;<br />              { 211.99.13.47;<br />                  { 202.93.22.13; 210.21.30.90; };<br />              };<br />          };<br />          { 61/8;<br />              { 202.93.22.13;<br />                  { 210.21.30.90; 211.99.13.47; };<br />              };<br />          };<br />      };<br />};<br /><br />　　zone &quot;.&quot; {<br />   　   type hint;<br />   　　 file &quot;root.cache&quot;;<br />　　};<br /><br />　　zone &quot;localhost&quot; {<br />    　  type master;<br />    　  file &quot;localhost&quot;;<br />　　};<br /><br />　　zone &quot;cdn.com&quot; {<br />　 　  type master;<br />     　 file &quot;cdn.com&quot;;<br />　　};<br /><br />三。设内外DNS<br />　外部DNS就是一般的设置，关键在于内部的DNS的设置上<br /><br /><br /><br /><br />## named.conf - configuration for bind<br />#<br /># Generated automatically by redhat-config-bind, alchemist et al.<br /># Any changes not supported by redhat-config-bind should be put<br /># in /etc/named.custom<br />#<br />controls {<br />        inet 127.0.0.1 allow { localhost; } keys { rndckey; };<br />};<br /><br />include &quot;/etc/named.custom&quot;;<br /><br />include &quot;/etc/rndc.key&quot;;<br /><br />options {<br />        directory &quot;/var/named/&quot;;<br />        forwarders { 192.168.22.9; };　　//转向到外部的DNS<br />};<br /><br /><br /><br /><br /><br /><br /><br /><br /><br />zone  &quot;0.0.127.in-addr.arpa&quot; {<br />        type master;<br />        file  &quot;0.0.127.in-addr.arpa.zone&quot;;<br />};<br />zone  &quot;22.168.192.in-addr.arpa&quot; {<br />        type master;<br />        file  &quot;22.168.192.in-addr.arpa.zone&quot;;<br />};<br />zone  &quot;7.20.172.in-addr.arpa&quot; {<br />        type master;<br />        file  &quot;7.20.172.in-addr.arpa.zone&quot;;<br />};<br /><br />zone  &quot;localhost&quot; {<br />        type master;<br />        file  &quot;localhost.zone&quot;;<br />};<br />zone  &quot;hutc.zj.cn&quot; {<br />        type master;<br />        file  &quot;hutc.zj.cn.zone&quot;;<br />        forwarders { };　　//除了内部的本域解析，其余都放到外部的DNS上<br />};<br /><br />四。利用bind9的view功能<br /><br />options        {<br />        directory &quot;/var/named&quot;;<br />        };<br /><br />acl        &quot;fx_subnet&quot;        {192.253.254/24; };<br />view &quot;internal&quot; { //我们区的内部视图<br />        match-clients { &quot;fx-subnet&quot;; };<br />                zone &quot;fx.movie.edu&quot; {<br />                 <br />                 type master;<br />                 file 'db.fx.moive.edu&quot;;<br />                 };<br />                 zone &quot;254.253.192.in-addr.arpa&quot; {<br />                 type master;<br />                 file &quot;db.192.253.254&quot;;<br />                 };<br />                };<br /><br />view &quot;external&quot; { //相应于世界的其余部分，我们区的视图<br />        match-clients { any; }; //隐式地<br />        rescursion no;  //我们的子网外面，它们不应该请求递归查询<br /><br />        　zone &quot;fx.movie.edu&quot; {<br />          type master;<br />          file  &quot;db.fx.movie.edu.external&quot;;  //外部区数据文件<br />          };<br /><br />          zone &quot;254.254.192.in.arpa&quot; {<br />            type master;<br />            file &quot;db.192.253.254.external&quot;;//外部区数据文件<br />            };<br />            };<br /><br />总结：方法一：过于复杂，并且不能解决MX纪录的问题<br />　　　方法二：实际上用别的思想来解决内外DNS解析的问题<br />　　　方法三：实际已经运用过，还可以用ACL来做进一步的限制，就是和方法四比较起来，机器用的多了一点<br />　　　方法四：感觉最好了。</font></li><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="/logs/3129491.html">域控制器降级失败后如何删除 Active Directory 中的数据</a> 2006-08-24</div><div><a href="/logs/3129427.html">Automated Deployment Services （ADS）实录</a> 2006-08-24</div><div><a href="/logs/3129405.html">安装mom2005+sql200 sp4的一点心得</a> 2006-08-24</div><div><a href="/logs/3129370.html">VSFTP＋MySQL虚拟用户配置</a> 2006-08-24</div><div><a href="/logs/3129362.html">使用mount挂载常用介质</a> 2006-08-24</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fsquallpig.blogbus.com%2Flogs%2F3129820.html&title=%E5%9C%A8%E9%98%B2%E7%81%AB%E5%A2%99%E7%8E%AF%E5%A2%83%E4%B8%8BDNS%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E8%AE%BE%E7%BD%AE">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://squallpig.blogbus.com/logs/3129820.html</link>
   <author>squall_sw</author>
   <pubDate>Thu, 24 Aug 2006 16:39:10 +0800</pubDate>
  </item>
  <item>
   <title>邮件系统postfix安装与配置</title>
   <description><![CDATA[<p><font size="2">转至CU</font></p><p><font size="2">邮件系统postfix安装与配置<br />一、 postfix概述<br />postfix是Wietse Venema在IBM的GPL协议之下开发的MTA（邮件传输<br />代理）软件。下面一段话摘自postfix的官方站点（http://www.postfix.org）：<br />“postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试。在Internet世界中，大部分的电子邮件都是通过sendmail来投递的，大约有100万用户使用sendmail，每天投递上亿封邮件。这真实一个让人吃惊的数字。Postfix试图更快、更容易管理、更安全，同时还与sendmail保持足够的兼容性。”<br /><br />1.1 postfix的特点<br />1. postfix是免费的：<br />    postfix想要作用的范围是广大的Internet用户，试图影响大多数的Internet上的电子邮件系统，因此它是免费的。<br />2. 更快：<br />    postfix在性能上大约比sendmail快三倍。一部运行postfix的台式PC每天可以收发上百万封邮件。<br />3. 兼容性好:<br />    postfix是sendmail兼容的，从而使sendmail用户可以很方便地迁移到postfix。Postfix支持/var[/spool]/mail、/etc/aliases、 NIS、和 ~/.forward 文件。<br />   4. 更健壮：<br />postfix被设计成在重负荷之下仍然可以正常工作。当系统运行超出了可用的内存或磁盘空间时，postfix会自动减少运行进程的数目。当处理的邮件数目增长时，postfix运行的进程不会跟着增加。<br />5. 更灵活：<br />postfix是由超过一打的小程序组成的，每个程序完成特定的功能。你可以<br />通过配置文件设置每个程序的运行参数。<br />   6. 安全性<br />postfix具有多层防御结构，可以有效地抵御恶意入侵者。如大多数的postfix程序可以运行在较低的权限之下，不可以通过网络访问安全性相关的本地投递程序等等。<br /><br />1.2 postfix的总体结构<br />postfix由十几个具有不同功能的半驻留进程组成，并且在这些进程中并无特定的进程间父子关系。某一个特定的进程可以为其他进程提供特定的服务。<br />大多数的postfix进程由一个进程统一进行管理，该进程负责在需要的时候调用其他进程，这个管理进程就是master进程。该进程也是一个后台程序。<br />这些postfix进程是可以配置的，我们可以配置每个进程运行的数目，可重用的次数，生存的时间等等。通过灵活的配置特性可以使整个系统的运行成本大大降低。<br /><br /><br />1.2.1 postfix的邮件队列（mail queues）<br />postfix有四种不同的邮件队列，并且由队列管理进程统一进行管理：<br />1． maildrop：本地邮件放置在maildrop中，同时也被拷贝到incoming中。<br />2． incoming：放置正在到达或队列管理进程尚未发现的邮件。<br />3． active：放置队列管理进程已经打开了并正准备投递的邮件，该队列有<br />             长度的限制。<br />4． deferred：放置不能被投递的邮件。<br />队列管理进程仅仅在内存中保留active队列，并且对该队列的长度进行限<br />制，这样做的目的是为了避免进程运行内存超过系统的可用内存。<br />    <br />1.2.2 postfix对邮件风暴的处理<br />当有新的邮件到达时，postfix进行初始化，初始化时postfix同时只接受两个并发的连接请求。当邮件投递成功后，可以同时接受的并发连接的数目就会缓慢地增长至一个可以配置的值。当然，如果这时系统的消耗已到达系统不能承受的负载就会停止增长。还有一种情况时，如果postfix在处理邮件过程中遇到了问题，则该值会开始降低。<br />当接收到的新邮件的数量超过postfix的投递能力时，postfix会暂时停止投递deferred队列中的邮件而去处理新接收到的邮件。这是因为处理新邮件的延迟要小于处理deferred队列中的邮件。Postfix会在空闲时处理deferred中的邮件。<br /><br />1.2.3 postfix对无法投递的邮件的处理<br />当一封邮件第一次不能成功投递时，postfix会给该邮件贴上一个将来的时间邮票。邮件队列管理程序会忽略贴有将来时间邮票的邮件。时间邮票到期时，postfix会尝试再对该邮件进行一次投递，如果这次投递再次失败，postfix就给该邮件贴上一个两倍于上次时间邮票的时间邮票，等时间邮票到期时再次进行投递，依此类推。当然，经过一定次数的尝试之后，postfix会放弃对该邮件的投递，返回一个错误信息给该邮件的发件人。<br /><br />1.2.4 postfix对不可到达的目的地邮件的处理<br />postfix会在内存中保存一个有长度限制的当前不可到达的地址列表。这样就避免了对那些目的地为当前不可到达地址的邮件的投递尝试。从而大大提高了系统的性能。<br /><br />1.2.2 postfix的安全性<br />postfix通过一系列的措施来提高系统的安全性，这些措施包括：<br />1． 动态分配内存，从而防止系统缓冲区溢出；<br />2． 把大邮件分割成几块进行处理，投递时再重组；<br />3． Postfix的各种进程不在其他用户进程的控制之下运行，而是运行在驻留 <br />   主进程master的控制之下，与其他用户进程无父子关系，所有有很好的<br />   绝缘性。<br />4． Postfix的队列文件有其特殊的格式，只能被postfix本身识别；<br /><br />二、 postfix对邮件的处理过程<br />2.1 接收邮件的过程<br /><br />图二、postfix对接收邮件的处理<br /><br />当postfix接收到一封新邮件时，新邮件首选在incoming队列处停留，然后针对不同的情况进行不同的处理：<br />1．对于来自于本地的邮件：sendmail进程负责接收来自本地的邮件放在maildrop队列中，然后pickup进程对maildrop中的邮件进行完整性检测。maildrop目录的权限必须设置为某一用户不能删除其他用户的邮件。<br />2．对于来自于网络的邮件：smtpd进程负责接收来自于网络的邮件，并且进行安全性检测。可以通过UCE（unsolicited commercial email）控制smtpd的行为。<br />3．由postfix进程产生的邮件：这是为了将不可投递的信息返回给发件人。这些邮件是由bounce后台程序产生的。<br />5． 由postfix自己产生的邮件：提示postmaster（也即postfix管理员）postfix<br />运行过程中出现的问题。（如SMTP协议问题，违反UCE规则的记录等等。）<br /><br />关于cleanup后台程序的说明：cleanup是对新邮件进行处理的最后一道工序<br />它对新邮件进行以下的处理：添加信头中丢失的Form信息；为将地址重写成标准的user@fully.qualified.domain格式进行排列；重信头中抽出收件人的地址；将邮件投入incoming队列中，并请求邮件队列管理进程处理该邮件；请求trivial-rewrite进程将地址转换成标准的user@fully.qualified.domain格式。<br /><br />2.2 投递邮件的过程<br />    新邮件一旦到达incoming队列，下一步就是开始投递邮件，postfix投递邮件时的处理过程如图三所示。相关的说明如下：<br />    邮件队列管理进程是整个postfix邮件系统的心脏。它和local、smtp、pipe等投递代理相联系，将包含有队列文件路径信息、邮件发件人地址、邮件收件人地址的投递请求发送给投递代理。队列管理进程维护着一个deferred队列，那些无法投递的邮件被投递到该队列中。除此之外，队列管理进程还维护着一个active队列，该队列中的邮件数目是有限制的，这是为了防止在负载太大时内存溢出。邮件队列管理程序还负责将收件人地址在relocated表中列出的邮件返回给发件人，该表包含无效的收件人地址。<br /><br /><br />如果邮件队列管理进程请求，rewrite后台程序对收件人地址进行解析。但是缺省地，rewrite只对邮件收件人是本地的还是远程的进行区别。<br />如果邮件对你管理进程请求，bounce后台程序可以生成一个邮件不可投递的报告。<br />本地投递代理local进程可以理解类似UNIX风格的邮箱，sendmail风格的系统别名数据库和sendmail风格的.forward文件。可以同时运行多个local进程，但是对同一个用户的并发投递进程数目是有限制的。你可以配置local将邮件投递到用户的宿主目录，也可以配置local将邮件发送给一个外部命令，如流行的本地投递代理procmail。在流行的linux发行版本RedHat中，我们就使用procmail作为最终的本地投递代理。<br />远程投递代理SMTP进程根据收件人地址查询一个SMTP服务器列表，按照顺序连接每一个SMTP服务器，根据性能对该表进行排序。在系统负载太大时，可以有数个并发的SMTP进程同时运行。<br />pipe是用于UUCP协议的投递代理。<br /><br />三、 postfix的安装过程<br />3.1源代码包的安装<br />1． 获取postfix的源代码包<br />   从postfix官方站点www.postfix.org取得postfix的源代码包postfix-19991231-pl08.tar.gz。将其拷贝到/tmp<br />2．解开源代码包，将生成/tmp/ postfix-19991231-pl08目录。<br />tar xvzf  postfix-19991231-pl08.tar.gz<br />   3．编译源代码包<br />cd /tmp/ postfix-19991231-pl08<br />make<br />   4．建立一个新用户“postfix”，该用户必须具有唯一的用户id和组id号，同时应该让该用户不能登录到系统，也即不为该用户指定可执行的登录外壳程序和可用的用户宿主目录。我们可以先用adduser postfix 添加用户再编辑/etc/passwd文件中的相关条目如下所示：         <br />      postfix:*:12345:12345:postfix:/no/where:/no/shell<br />5．确定/etc/aliases文件中包含如下的条目：<br />      postfix: root<br />6． 以root用户登录，在/tmp/ postfix-19991231-pl08目录下执行命令：<br />./INSTALL.sh<br />7． 启动postfix<br /># postfix start<br />8．关于maildrop目录权限的说明：<br />   postfix可以使用一个所有用户都可写的（也即目录权限为1773）的maildrop<br />目录来让本地用户提交邮件。这种方法避免了使用set-uid 或 set-gid 软件，并且在邮件系统不可用时，用户仍然可以提交邮件。其他用户没有访问该目录中的队列文件的权限。接收来自网络的邮件时postfix不使用maildrop目录。但是，由于该目录的权限是733，其他用户可以建立一个硬连接到该目录中的文件从而导致该邮件被投递多次或无法删除，也就是说这将导致安全性问题。如果你想要使用这种方式来让用户提交邮件，就要在INSTALL.sh 脚本问你是否需要set-gid 时回答no。<br />如果你的系统有多个用户的话，最好取消以上的方式而采用利用set-gid 用<br />户权限提交邮件的方式。这时，我们首先需要建立一个组id唯一的组&quot;maildrop&quot; 并且确定该组中没有用户成员。然后在INSTALL.sh 问你是否需要set-gid 时指定&quot;maildrop&quot;。<br />    提示：在安装postfix之前，请删除已经安装的sendmail。<br /><br />3.2 rpm包的安装<br />1． 获取postfix的rpm软件包。<br />   我们可以从http://www.alltrading.es/postfix/RPMS/i386/ 获得postfix的rpm软件包。当前的最新版本是postfix-20000531-2.i386.rpm。<br />2． 备份你的/etc/aliases和/etc/aliases.db，因为postfix要使用该别名数据库。<br />3． 用以下命令查看系统是否安装了sendmail:<br />      [root@mail /root]# rpm -qa |grep sendmail<br />      sendmail-doc-8.9.3-15<br />      sendmail-8.9.3-15<br />      sendmail-cf-8.9.3-15<br />4． 用以下命令强行卸载sendmail：<br />   [root@mail /root]# rpm -e sendmail sendmail-cf sendmail-doc --nodeps<br />5． 用以下命令杀死运行中的sendmail进程：<br />[root@mail /root]# killall sendmail<br />6． 安装postfix：<br />   [root@mail /root]# rpm -Uvh postfix-20000531-2.i386.rpm<br />    postfix ##################################################<br />    postfix-script: warning: creating missing Postfix pid directory<br />    postfix-script: warning: creating missing Postfix incoming directory<br />    postfix-script: warning: creating missing Postfix active directory<br />    postfix-script: warning: creating missing Postfix bounce directory<br />    postfix-script: warning: creating missing Postfix defer directory<br />    postfix-script: warning: creating missing Postfix deferred directory<br />    postfix-script: warning: creating missing Postfix saved directory<br />    postfix-script: warning: creating missing Postfix corrupt directory<br />    postfix-script: warning: creating missing Postfix public directory<br />    postfix-script: warning: creating missing Postfix private directory<br />[root@mail /root]#<br />7． 启动postfix<br />      [root@mail /root]# /etc/rc.d/init.d/postfix start<br /><br />3.3 配置系统每次启动时自动启动postfix<br />1.如果你安装的是postfix的源代码包，可以在/etc/rc.d/rc.local文件中加入如下的语句让系统每次启动时自动启动postfix：<br />if  [ -f  /usr/libexec/postfix ]; then<br />/usr/libexec/postfix start<br />fi<br />2.如果你安装的是postfix的rpm包，可以通过setup命令来设置在系统启动时启动postfix。<br />四、 postfix的配置详解<br />4.1 postfix的配置文件结构<br />    postfix的配置文件位于/etc/postfix下，安装完postfix以后，我们可以通过ls命令查看postfix的配置文件：<br />    [root@mail postfix]# ls<br />install.cf main.cf master.cf postfix-script<br /><br />    这四个文件就是postfix最基本的配置文件，它们的区别在于：<br />    mail.cf：是postfix主要的配置文件。<br />    Install.cf：包含安装过程中安装程序产生的postfix初始化设置。<br />master.cf：是postfix的master进程的配置文件，该文件中的每一行都是用来配置postfix的组件进程的运行方式。<br />postfix-script：包装了一些postfix命令，以便我们在linux环境中安全地执行这些postfix命令。<br /><br />4.2 postfix的基本配置<br />postfix大约有100个配置参数，这些参数都可以通过main.cf 指定。配置的格式是这样的，用等号连接参数和参数的值。如：<br />myhostname ＝ mail.mydomain.com<br />等号的左边是参数的名称，等号的右边是参数的值； 当然，我们也可以在参数的前面加上$来引用该参数，如：<br />myorigin = $myhostname<br />虽然postfix有100个左右的参数，但是postfix为大多数的参数都设置了缺省值，所以在让postfix正常为你服务之前，你只需要配置为数不多的几个参数。下面我们一起来看一看这些基本的postfix参数。需要注意的是，一旦你更改了main.cf文件的内容，则必须运行postfix reload命令使其生效。<br /><br />1． myorigin<br />myorigin参数指明发件人所在的域名。如果你的用户的邮件地址为user@domain.com,则该参数指定@后面的域名。缺省地，postfix使用本地主机名作为myorigin，但是建议你最好使用你的域名，因为这样更具有可读性。比如：安装postfix的主机为mail.domain.com则我们可以这样指定myorigin:<br />myorigin = domain.com<br />当然我们也可以引用其他参数，如：<br />    myorigin = $mydomain <br />   <br />2． mydestination<br />mydestination参数指定postfix接收邮件时收件人的域名，换句话说，也就<br />是你的postfix系统要接收什么样的邮件。比如：你的用户的邮件地址为user@domain.com, 也就是你的域为domain.com, 则你就需要接收所有收件人为user_name@domain.com的邮件。与myorigin一样，缺省地，postfix使用本地主机名作为mydestination。如：<br />      mydestination = $mydomain<br />      mydestination = domain.com<br />   <br />3． notify_classes<br />在postfix系统中，必须指定一个postfix系统管理员的别名指向一个用户，<br />只有这样，在用户遇到问题时才有报告的对象，postfix也才能将系统的问题报告给管理员。notify_classes参数就是用来指定向postfix管理员报告错误时的信息级别。共有以下几种级别： <br /><br />bounce：将不可以投递的邮件的拷贝发送给postfix管理员。出于个人隐私的缘故，该邮件的拷贝不包含信头。 <br /><br />2bounce：将两次不可投递的邮件拷贝发送给postfix管理员。<br /><br />delay：将邮件的投递延迟信息发送给管理员，仅仅包含信头。<br /><br />policy：将由于UCE规则限制而被拒绝的用户请求发送给postfix管理员，包含整个SMTP会话的内容。<br /><br />protocol：将协议的错误信息或用户企图执行不支持的命令的记录发送给postfix管理员。同样包含整个SMTP会话的内容。<br /><br />resource：将由于资源错误而不可投递的错误信息发送给postfix管理员，比如：队列文件写错误等等。 <br /><br />software：将由于软件错误而导致不可投递的错误信息发送给postfix管理员。<br /><br />缺省值为：<br />notify_classes = resource, software<br /><br />    4．myhostname<br />myhostname 参数指定运行postfix邮件系统的主机的主机名。缺省地，该值被设定为本地机器名。你也可以指定该值，需要注意的是，要指定完整的主机名。如：<br />    myhostname = mail.domain.com <br /><br />    5．mydomain<br />mydomain参数指定你的域名，缺省地，postfix将myhostname的第一部分删除而作为mydomain的值。你也可以自己指定该值，如：<br />mydomain = domain.com<br /><br />6．mynetworks<br />mynetworks 参数指定你所在的网络的网络地址，postfix系统根据其值来区别用户是远程的还是本地的，如果是本地网络用户则允许其访问。你可以用标准的A、B、C类网络地址，也可以用CIDR（无类域间路由）地址来表示,如：<br />192.168.1.0/24<br />192.168.1.0/26<br /><br />7．inet_interfaces<br />inet_interfaces 参数指定postfix系统监听的网络接口。缺省地，postfix监听<br />所有的网络接口。如果你的postfix运行在一个虚拟的ip地址上，则必须指定其监听的地址。如：<br />   inet_interfaces = all<br />   inet_interface = 192.168.1.1<br /><br />4.3 postfix的UCE（unsolicited commercial email）控制<br />所谓UCE控制就是指控制postfix接收或转发来自于什么地方的邮件。<br /><br />缺省地，postfix转发符合以下条件的邮件：<br />* 来自客户端ip地址符合$mynetworks的邮件。<br />* 来自客户端主机名符合$relay_domains及其子域的邮件。<br />* 目的地为$relay_domains及其子域的邮件。<br /><br />缺省地，postfix接受符合以下条件的邮件：<br />* 目的地为$inet_interfaces的邮件。<br />* 目的地为$mydestination的邮件。<br />* 目的地为$virtual_maps的邮件。<br />但是我们也可以通过下面的规则来实现更强大的控制功能。<br /><br />1． 信头过滤<br />通过header_checks参数限制接收邮件的信头的格式，如果符合指定的格式，则拒绝接收该邮件。可以指定一个或多个查询列表，如果新邮件的信头符合列表中的某一项则拒绝该接收邮件。如：<br />header_checks = regexp:/etc/postfix/header_checks <br />header_checks = pcre:/etc/postfix/header_checks<br />缺省地，postfix不进行信头过滤。<br /><br />2．客户端主机名/地址限制<br />通过smtpd_client_restrictions参数限制可以向postfix发起SMTP 连接的客户端的主机名或ip地址。可以指定一个或多个参数值，中间用逗号隔开。限制规则是按照查询的顺序进行的，第一条符合条件的规则被执行。可用的规则有：<br /><br />reject_unknown_client：如果客户端的ip地址在DNS中没有PTR记录则拒绝转发该客户端的连接请求。可以用unknown_client_reject_code参数指定返回给客户机的错误代码（缺省为450）。如果你有用户没有作DNS记录则不要启用该选项。<br /><br />permit_mynetworks：如果客户端的ip地址符合$mynetworks参数定义的范围则接受该客户端的连接请求，并转发该邮件。<br /><br />check_client_access  maptype:mapname：根据客户端的主机名、父域名、ip地址或属于的网络搜索access数据库。如果搜索的结果为REJECT 或者 &quot;[45]XX text&quot; 则拒绝该客户端的连接请求；如果搜索的结果为OK、RELAY 或数字则接受该客户端的连接请求，并转发该邮件。。可以用access_map_reject_code参数指定返回给客户机的错误代码（缺省为554）。<br /><br />reject_maps_rbl：如果客户端的网络地址符合$maps_rbl_domains参数的值则拒绝该客户端的连接请求。可以用maps_rbl_reject_code参数指定返回给客户机的错误代码（缺省为554）。<br /><br />示例：<br />    smtpd_client_restrictions = hash:/etc/postfix/access, reject_maps_rbl <br />        smtpd_client_restrictions = permit_mynetworks, reject_unknown_client<br />   该参数的缺省值为：<br />   smtpd_client_restrictions =<br />   也即接收来自任何客户端的SMTP连接。<br /><br />3. 是否请求HELO命令<br />可以通过smtpd_helo_required参数指定客户端在SMTP会话的开始是否发<br />送一个HELO命令。你可以指定该参数的值为yes或no。缺省值为：<br />    smtpd_helo_required = no<br />    <br />4. HELO主机名限制<br />可以通过smtpd_helo_restrictions参数指定客户端在执行HELO命令时发送<br />给postfix的主机名。缺省地，postfix接收客户端发送的任意形式的主机名。可以指定一个或多个参数值，中间用逗号隔开。限制规则是按照查询的顺序进行的，第一条符合条件的规则被执行。可用的规则有：<br />reject_invalid_hostname：如果HELO命令所带的主机名参数不符合语法规范则拒绝客户机的连接请求。可以用invalid_hostname_reject_code参数指定返回给客户机的错误代码（缺省为501）。<br /><br />permit_naked_ip_address：RFC要求客户端的HELO命令包含的ip地址放在方括号内，你可以用permit_naked_ip_address参数取消该限制。因为有的mail客户端不遵守该RFC的规定。<br /><br />reject_unknown_hostname：如果客户端执行HELO命令时的主机名在DNS中没有相应的A 或 MX 记录则拒绝该客户端的连接请求。可以用invalid_hostname_reject_code参数指定返回给客户机的错误代码（缺省为450）。<br /><br />reject_non_fqdn_hostname：如果客户端执行HELO命令时的主机名不是RFC规定的完整的域名则拒绝客户端的连接请求。可以用invalid_hostname_reject_code参数指定返回给客户机的错误代码（缺省为504）。<br /><br />check_helo_access  maptype:mapname：根据客户端HELO的主机名、父域名搜索access数据库。如果搜索的结果为REJECT 或者 &quot;[45]XX text&quot; 则拒绝该客户端的连接请求；如果搜索的结果为OK、RELAY 或数字则接受该客户端的连接请求。可以用access_map_reject_code参数指定返回给客户机的错误代码（缺省为554）。<br /><br />示例：<br />smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname<br /><br />5. RFC 821信头限制<br />RFC 821对邮件的信头做了严格的规定，但是广泛使用的sendmail并不支<br />持该规定，所以对于该参数我们只能说不，即：<br />    strict_rfc821_envelopes = no<br /><br />6. 通过发件人地址进行限制<br />可以用smtpd_sender_restrictions参数通过发件人在执行MAIL FROM命令时提供的地址进行限制。可以指定一个或多个参数值，中间用逗号隔开。限制规则是按照查询的顺序进行的，第一条符合条件的规则被执行。可用的规则有：<br /><br />reject_unknown_sender_domain：如果MAIL FROM命令提供的主机名在DNS中没有相应的A 或 MX 记录则拒绝该客户端的连接请求。可以用unknown_address_reject_code参数指定返回给客户机的错误代码（缺省为450）。<br /><br />check_sender_access maptype:mapname：根据MAIL FROM命令提供的主机名、父域搜索access数据库。如果搜索的结果为REJECT 或者 &quot;[45]XX text&quot; 则拒绝该客户端的连接请求；如果搜索的结果为OK、RELAY 或数字则接受该客户端的连接请求。可以用access_map_reject_code参数指定返回给客户机的错误代码（缺省为554）。可以通过该参数过滤来自某些不受欢迎的发件人的邮件。<br /><br />reject_non_fqdn_sender：如果MAIL FROM命令提供的主机名不是RFC规定的完整的域名则拒绝客户端的连接请求。可以用non_fqdn_reject_code 参数指定返回给客户机的错误代码（缺省为504）。<br />缺省地，postfix接受来自任何发件人的邮件。<br />示例：<br />smtpd_sender_restrictions = hash:/etc/postfix/access, reject_unknown_sender_domain<br /><br />7. 通过收件人地址进行过滤<br />可以用smtpd_recipient_restrictions参数通过发件人在执行RCPT TO命令<br />时提供的地址进行限制。缺省值为：<br />smtpd_recipient_restrictions = permit_mynetworks, check_relay_domains<br />   可以指定一个或多个参数值，中间用逗号隔开。限制规则是按照查询的顺序<br />进行的，第一条符合条件的规则被执行。可用的规则有：<br /><br />check_relay_domains：如果符合以下的条件，则接受SMTP连接请求，否则拒绝该连接，可以用relay_domains_reject_code 参数指定返回给客户机的错误代码（缺省为504）。<br />* 客户端主机名符合$relay_domains及其子域<br />* 目的地为$inet_interfaces、$mydestination或$virtual_maps<br /><br />permit_auth_destination：不管客户端的主机名，只要符合以下的条件，就<br />接受SMTP连接请求：<br />* 解析后的目标地址符合$relay_domains及其子域<br />* 解析后的目标地址符合$inet_interfaces、$mydestination或$virtual_maps<br /><br />reject_unauth_destination：不管客户端的主机名，只要符合以下的条件，<br />就拒绝该客户端SMTP连接请求：<br />* 解析后的目标地址符合$relay_domains及其子域<br />* 解析后的目标地址符合$inet_interfaces、$mydestination或$virtual_maps<br /><br />check_recipient_access：根据解析后的目标地址、父域搜索access数据库。如果搜索的结果为REJECT 或者 &quot;[45]XX text&quot; 则拒绝该客户端的连接请求；如果搜索的结果为OK、RELAY 或数字则接受该客户端的连接请求。可以用access_map_reject_code参数指定返回给客户机的错误代码（缺省为554）。<br />    <br />reject_unknown_recipient_domain：如果收件人的邮件地址在DNS中没有相应的A 或 MX 记录则拒绝该客户端的连接请求。可以用unknown_address_reject_code参数指定返回给客户机的错误代码（缺省为450）。<br /><br />reject_non_fqdn_recipient：如果发件人在执行RCPT TO命令时提供的地址<br />不是完整的域名则拒绝其SMTP连接请求。可以用The non_fqdn_reject_code参数指定返回给客户机的错误代码（缺省为504）。<br /><br />4.4 posftfix的性能控制<br />之所以对postfix的性能进行控制，是为了在遇到邮件风暴时保证postfix可以正常运行。通常，我们可以通过对下列postfix参数的配置来调节postfix的性能，这些参数都是通过mail.cf配置文件进行配置的，修改以后不要忘了运行postfix reload命令来使配置生效。<br /><br />1． 进程数限制<br />可以通过default_process_limit 参数来控制postfix系统同时可以运行的最<br />大进程数目。缺省值是50个。 <br /><br />2． 对同一目标主机的并发连接限制<br />当向同一目标主机发出SMTP连接时，postfix初始化发出两个SMTP连接，<br />如果投递成功则增加并发的SMTP连接数目，遇到拥塞时又减少并发连接的数目。postfix中通过以下的参数对同一目标主机的并发连接进行控制：<br />* initial_destination_concurrency：控制对同一目标主机的初始化并发连接数目。缺省值为2。<br />* default_destination_concurrency_limit：控制初始化连接后对同一目标主机的最大并发连接数目。缺省值为10。<br />* local_destination_concurrency_limit：控制对同一本地收件人的最大同时投递的邮件数目。缺省值为2，因为对本地同一收件人投递邮件时投递工作只能一个接一个的进行，所以设得在大也没用。<br /><br />3． 对同一封邮件的收件人数目限制<br />通过default_destination_recipient_limit参数来控制postfix的投递代理（如<br />smtp进程）可以将同一封邮件发送给多少个收件人。缺省值为50。也可以用明确指出该投递代理的参数来覆盖该缺省值。如用smtpd_recipient_limit来指定smtp投递代理可以将同一封邮件发送给多少个收件人，该参数的缺省值为1000。<br />    <br />4． 推迟投递控制<br />通过defer_transports参数，我们可以推迟投递该参数指定的邮件直到postfix明确的提出投递要求。下面我们看一个例子：<br />有一个小型的局域网，用户都将邮件发送给局域网内部的一台postfix<br />邮件服务器，然后通过在该服务器上拨号将邮件发送出去。这时我们可以这样指定该参数的值：<br />   defer_transports = smtp<br />该语句表示postfix推迟投递所有的邮件直到执行sendmail -q命令，这样<br />我们就可以在ppp的脚本中加上sendmail -q，以便在拨号成功后让postfix开始投递邮件。<br /><br />邮件系统postfix安装与配置(二)<br /><br />http://LinuxAid.com.cn 01-01-12 11:26 318p bye2000<br />--------------------------------------------------------------------------------<br /><br /><br />5． 关于延迟邮件的再投递控制<br />可以通过以下的几个参数实现对延迟邮件的再投递控制：<br />queue_run_delay：设置队列管理进行扫描deferred邮件队列的频率，缺省值为1000秒。<br />maximal_queue_lifetime：设置postfix在放弃投递而返回不可投递信息前，被延迟邮件再deferred邮件队列中的生存时间。<br />minimal_backoff_time：当一封邮件投递失败后，邮件队列将在一段时间内忽视该邮件的存在，也就是我们前面讲的时间邮票。该参数就是用来设置最小的时间邮票。缺省值为1000秒。<br />maximal_backoff_time：设置最大的时间邮票。<br /><br />6． 对拒绝服务攻击的处理<br />postfix对每一个SMTP会话都设置一个错误计数器，当该客户端的请求未<br />被接受或违反那UCE规则时，该计数器就增1。随着计数器的增加，postfix将采取不同的措施来防止恶意用户的拒绝服务攻击。<br />smtpd_error_sleep_time：当该错误计数器的值还很小时，postfix将暂停<br />smtpd_error_sleep_time指定的时间，然后向客户端报告一个错误。该参数的缺省值为5秒。<br />    smtpd_soft_error_limit：当错误计数器的值超过该参数指定的值时，postfix在响应该客户端请求前将沉睡一段时间。缺省值为10。<br />smtpd_hard_error_limit：当错误计数器的值超过该参数指定的值时，postfix<br />中断同该客户端的连接。缺省值为100。<br /><br />4.5 postfix对使用资源的控制<br />通过特定的postfix配置参数，我们可以实现postfix运行时对所消耗的资源的灵活控制。可以通过以下几个方面来控制postfix消耗的资源：<br /><br />1． 限制内存中的对象的大小<br />要控制对内存资源的消耗，必须控制内存中对象的大小。可以用以下的参数来进行对象大小的控制：<br />line_length_limit：控制读入数据时每一行的大小，如果太长则强行将其分割成更短的行，太长的行在投递时再重组。缺省值为2048 bytes。<br />header_size_limit：限制信头长度。缺省值为102400bytes。<br />message_size_limit：限制postfix队列文件的大小。缺省值为10240000 bytes。<br />queue_minfree：邮件队列中可用的空间大小。缺省为无限制。建议该值最好时message_size_limit的数倍以便于处理大邮件。<br />bounce_size_limit：限制某一邮件不可投递时，返回给发件人不可投递报告的大小，缺省值为50000 bytes。<br /><br />2． 限制内存中对象的数目<br />qmgr_message_recipient_limit：设置内存中收件人地址的最大数目。缺省值为10000。<br />qmgr_message_active_limit：设置active邮件队列中邮件数目的最大值。缺省值为1000。<br />duplicate_filter_limit：设置需要local和cleanup后台程序记住的收件人地址的最大数目。缺省值为1000。<br /><br />    3．限制等待一个外部命令完成的时间<br />command_time_limit：设置local程序等待一个外部命令完成的时间。缺省值为1000秒。<br /><br />4． 限制文件锁定的操作时间<br />   deliver_lock_attempts：设置锁定一个文件的最大尝试次数。缺省值为5次。<br />   deliver_lock_delay：设置如果锁定一个文件失败后再次尝试的等待时间，缺省值为1秒。<br />   <br />5． 控制错误恢复<br />在某些情况下（如高负载），postfix的某个进程可能会死掉，这时master进<br />程会试图重新启动该进程，我们可以通过下面的参数来控制这种行为：<br />fork_attempts：试图重启动一个进程的最大尝试次数。缺省值为5次。<br />fork_delay：每两次尝试之间的等待时间，缺省值为1秒。<br />transport_retry_time：队列管理进程每两次尝试连接一个不正常的投递代理进程之间的等待时间。缺省为60秒。<br /><br />4.6 postfix中的地址操作<br /><br />1． 将地址改写为标准格式<br />在cleanup进程进行表查询之前，它首选请求trivial-rewrite进程将新<br />邮件地址改写成标准的user@fully.qualified.domain格式。改写的目的是为了减少查询表中的条目，从而提供查询的效率。trivial-rewrite进程可以实现以下的地址改写：<br />* 将包含源路由信息的地址如@hosta,@hostb:user@site写成user@site，因为postfix不支持包含源路由信息的地址格式。<br />* 将形如user%domain的地址改写成user@domain的形式。该特性可通过allow_percent_hack参数进行控制，其缺省值为yes。<br />* 将只包含user的地址改写成user@$myorigin。该特性可通过append_at_myorigin参数进行控制，其缺省值为yes。最好不要改动其缺省值，因为大多数的postfix进程更擅长处理地址形如user@$myorigin的邮件。<br />* 将形如user@host的地址改写成user@host.$mydomain。该特性可通过append_dot_mydomain参数进行控制，其缺省值为yes。<br />* 将形如user@site.的地址改写成 user@site，也即除去了最后的点号。<br /><br />2． 规范地址映射<br />在cleanup进程将一封新邮件存入incoming邮件队列之前，cleanup进程<br />将根据查询规范表来进行地址改写，从而使之更具可读性。主要是替换形如Firstname.Lastname 风格的地址以及清除无效的域。缺省postfix是不进行规范地址改写的，你可以通过指定canonical_maps参数的值来使其生效。如：<br />     canonical_maps = hash:/etc/postfix/canonical <br />     也可以分别为收件人和发件人地址分别指定不同的改写规范，这时参数sender_canonical_maps和recipient_canonical_maps的优先级比canonical_maps高。如：<br />     sender_canonical_maps = hash:/etc/postfix/sender_canonical <br />     recipient_canonical_maps = hash:/etc/postfix/recipient_canonical<br /><br />3． 地址欺骗<br />就是将形如user@host.domain的地址改写成user@domain或user@other.domain, <br />好像是从其他的邮件服务器发出的一样。缺省该功能是被禁止的，可以用参数masquerade_domains使其生效，如：<br />    masquerade_domains = $mydomain<br />    也可以通过masquerade_exceptions参数对特定的用户不进行地址欺骗，如：<br />masquerade_exceptions = root<br />注意：地址欺骗只对发件人地址有作用。<br /><br />4． 虚拟地址映射<br />在运用了规范地址映射和地址欺骗之后，cleanup将使用虚拟表映射将邮件<br />重定向到所有的收件人。注意，该操作仅仅作用于信头上的收件人地址。这样，我们就可以将发送到虚拟域的邮件投递到真实用户的邮箱。系统的别名数据库同样可以起到相同的作用。缺省该功能是被禁止的，可以用参数virtual_maps使其生效，如：<br />     virtual_maps = hash:/etc/postfix/virtual<br />     <br />5． Relocated数据库查询<br />    Relocated表格提供如何将邮件发送给在系统中没有帐号的用户。缺省该功能是被禁止的，可以用参数relocated_maps使其生效，如：<br />    relocated_maps = hash:/etc/postfix/relocated<br />    <br />6． 别名数据库查询<br />当邮件在本地投递时，local投递代理进程会在别名数据库（linux下为<br />/etc/aliases）中查询收件人的别名。该操作不会作用于邮件信头中的地址。可以用alias_maps指定使用的别名数据库。缺省地，该功能是有效的，如：<br />    alias_maps = hash:/etc/aliases <br />可以通过alias_database参数控制别名数据库的路径，如：<br />alias_database = hash:/etc/aliases<br /><br />五、 postfix的配置实例<br />5.1为拨号用户配置postfix<br />假设有一个小公司使用拨号上网，公司通过ISP的SMTP服务器（假设其域名为mail.isp.com，ip地址为201.110.1.100）发送邮件；公司内部的员工通过公司的SMTP服务器（运行postfix）收发邮件，下面我们一起来配置公司内部的SMTP服务器。<br /><br />1． 因为没有自己的固定ip和域名，所以必须指定ISP的SMTP服务器作<br />为邮件网关（智能主机）。可以用如下的参数指定：<br />   relayhost = [201.110.1.100]<br />注意：relayhost的值可以是domain、host、host:port、[address]或[address]。<br /><br />2. 当接收到新邮件时，postfix就会尝试投递该邮件。如果将该公司内部的<br />SMTP服务器设置为按需拨号，也就是一有程序请求外联就拨号，则会增加上网的费用。这时我们可以通过postfix的defer_transports参数推迟投递新邮件直到postfix提出明确的要求，如指定：<br />    defer_transports = smtp<br />这时如果我们在ppp的脚本（如/etc/ppp/ip-up.local）加上如下命令，则postfix只在拨号成功后投递新邮件：<br />/usr/sbin/sendmail<br /><br />3． 因为我们是将邮件转发到邮件网关（201.110.1.100）而不是自己进行投<br />递，所以我们没有必要使用DNS，因此我们通过如下的参数取消DNS查询：<br />disable_dns_lookups = yes<br /><br />4. 为了保证我们能收到回信，我们必须进行域伪装。<br />masquerade_domains = isp.com<br /><br />下面就是我们的配置文件mail.cf：<br /><br />#指定邮件网关<br />relayhost =  [201.110.1.100]<br /># 在拨号成功后才投递邮件<br />defer_transports = smtp<br />#取消DNS查询<br />disable_dns_lookups = yes<br />#一般常规配置<br />queue_directory = /var/spool/postfix<br />program_directory = /usr/libexec/postfix<br />command_directory = /usr/sbin<br />daemon_directory = /usr/libexec/postfix<br />mail_owner = postfix<br />default_privs = nobody<br />mail_spool_directory = /var/spool/mail<br />mailbox_command = /usr/bin/procmail<br />local_destination_concurrency_limit = 2<br />default_destination_concurrency_limit = 10<br />debug_peer_level = 2<br />debugger_command=PATH=/usr/bin:/usr/X11R6/bin,xxgdb$<br />                 daemon_directory/$ process_name $process_id &amp; sleep 5<br />    # 假设本地网络为192.168.1.1/24<br />mynetworks = 192.168.1.1/24<br /># host specific information<br />myhostname = yourhost.isp.com<br />mydomain = local.isp.com<br />myorigin = $mydomain<br />where do we receive mail and who do we accept/receive mail for?<br />inet_interfaces = all<br />mydestination = $myhostname, localhost.$mydomain, $mydomain<br />default_transport = smtp<br />masquerade_domains = isp.com<br /><br />需要注意的是：这里的$mydomain、$myorigin、$mydestination不能为isp.com, 因为你如果设定为isp.com，内部SMTP服务器就会认为你的邮件是转发给它的，故而在本地尝试投递邮件，结果只会返回“unknown user”的错误。其次，该配置只实现了将邮件通过SMTP发送到ISP的SMTP服务器的手段，缺乏从ISP的邮件服务器取信的方法，这一点就只能通过如outlook或foxmail等的mail客户端软件来实现了。<br /><br />5.2为中小型企业用户配置postfix<br />假设有一家数千名员工的公司，该公司通过租用专线上网。现在公司决定<br />通过postfix来建立自己的邮件系统。在这里我们假设该公司的域为some.com, 邮件服务器的域名mail.some.com，地址为202.200.180.2，DNS服务器的域名为dns.some.com,地址为202.200.180.1。<br />1． 配置DNS服务器，设置MX记录指向mail.some.com。相关的配置文件<br />为/var/named/some.com(假设其zone文件就叫some.com, 有关DNS配置的内容请参看本书的相关章节)的内容如下：<br /><br />@       IN      SOA  dns.some.com. root.dns.some.com (<br />                       2000011307  ; serial<br />                       28800       ; refresh, seconds<br />                       14400              ; retry, seconds<br />                       3600000              ; expire, seconds<br />                       86400            ; minimum, seconds<br />                        )<br /><br />@             IN    NS      dns.some.com.<br />@             IN    A       202.200.180.1<br />@             IN    MX      10  mail.some.com. <br /><br />localhost     IN    A        127.0.0.1<br />dns         IN     A        202.200.180.1<br />mail         IN    A        202.200.180.2<br />host1        IN     A       202.200.180.3<br />host2        IN     A       202.200.180.4<br /><br />2． 配置postfix，其配置文件及相关的解释如下：<br /><br />#设置一般的路径信息<br />queue_directory = /var/spool/postfix<br />command_directory = /usr/sbin<br />daemon_directory = /usr/libexec/postfix<br />mail_spool_directory = /var/spool/mail<br /><br />#设置邮件及邮件队列的所有者为postfix<br />mail_owner = postfix<br /><br />#设置邮件服务器的主机名<br />myhostname = mail.some.com<br /><br />#设置mydomain、myorigin和mydomain参数<br />mydomain = some.com<br />myorigin =$mydomain <br />mydestination = $mydomain<br /><br />#设置postfix服务监听的端口<br />inet_interfaces = all<br /><br />#设置本地收件人的用户名查询手段，缺省是查询/etc/passwd文件<br />#和别名数据库<br />local_recipient_maps = $alias_maps unix:passwd.byname<br />alias_maps = hash:/etc/aliases<br />alias_database = hash:/etc/aliases<br /><br />#设置最终的本地投递代理程序，在这里我们使用流行的procmail<br />mailbox_command = /usr/bin/procmail<br /><br />#设置该值为$mydomain以便客户端的连接<br />relay_domains = $mydomain<br />mynetworks = 202.200.180.0/24<br /><br />#设置向用户显示的主机名和版本信息<br />smtpd_banner = $myhostname ESMTP $mail_name<br /><br />#对于并发进程的限制，保持系统缺省值就可以满足要求了。<br />local_destination_concurrency_limit = 2<br />default_destination_concurrency_limit = 10<br /><br />#如果你不知道你在做什么，最好不要改变下面的设置<br />debug_peer_level = 2<br />debugger_command =<br />         PATH=/usr/bin:/usr/X11R6/bin<br />         xxgdb $daemon_directory/$process_name $process_id &amp; sleep 5<br /><br />3． 在RedHat中我们通常使用imap作为pop3服务器，可以通过rpm -q imap<br />命令查看系统有没有安装imap。如果没有安装则插入linux光盘，用rpm -ivh imap-4.5-4.rpm 进行安装。<br /><br />4． 缺省地，pop3服务器是由inet 启动的，所以必须去掉/etc/inetd.conf文<br />件中有关pop3的一行注释。如下所示：<br />  pop-3  stream  tcp    nowait  root   /usr/sbin/ipop3d    ipop3d<br /><br />5． 重新启动inet服务器，启动postfix:<br />#/etc/rc.d/init.d/inet restart<br />#postfix start<br /><br />5.3在防火墙内部配置postfix<br />    假设一公司通过租用专线上网，公司内部使用192.168.0.0的私有ip, 然后通过防火墙（双宿主主机）的ip欺骗上网，公司的邮件服务器（mail.some.com）也在内部网中，也使用私有ip。我们假设在防火墙上进行了端口转发，可以将Internet对防火墙25端口的请求包转发到内部的邮件服务器上，并且运行DNS服务的防火墙的MX记录指向防火墙本身。<br />在这个例子中，我想着重说明的是有关映射文件的用法。main.cf配置文件和相关的解释如下所示：<br /><br /><br />    #表明自己的身份<br />myhostname = mail.some.com<br />mydomain = some.com<br />mydestination = $mydomain, $myhostname, localhost.$mydomain<br />myorigin = $mydomain<br />#让postfix监听所有接口<br />inet_interfaces = all<br /><br />#通过mynetworks参数接受内部网用户的SMTP连接请求<br />mynetworks = 192.168.0.0/8  <br /><br />#向postfix管理员报告的信息量<br />notify_classes = resource, software, bounce, policy<br /><br />#如果客户端的ip地址符合$maps_rbl_domains参数中列出的则拒绝之<br />maps_rbl_domains = rbl.maps.vix.com, dul.maps.vix.com<br /><br />#对可以连接的客户端进行严格的限制<br />smtpd_client_restrictions = <br />             #客户端ip符合$mynetworks定义的范围则接受连接<br />permit_mynetworks, <br />        #根据access的查询结果判断客户端连接的合法性<br />              check_client_access hash:/etc/postfix/access, <br />     #拒绝ip符合$maps_rbl_domains定义范围的连接<br />               reject_maps_rbl, <br />    #如果客户端在DNS中没有记录则拒绝连接，要慎用<br />               reject_unknown_hostname<br /><br />#通过发件人的地址进行限制<br />smtpd_sender_restrictions = <br />    permit_mynetworks, <br />check_sender_access hash:/etc/postfix/access<br />    <br />#设置虚拟主机数据库，别忘了执行&quot;postmap virtual&quot;进行格式转换<br />virtual_maps = hash:/etc/postfix/virtual <br />    <br />#对无系统帐号的邮件进行转发设置，如离开公司的员工<br />relocated_maps = hash:/etc/postfix/relocated<br />   <br />#设置别名数据库<br />alias_maps = hash:/etc/postfix/aliases<br />    <br /># 我们使用smtp投递代理<br />default_transport = smtp<br />    <br /># 一些常规设置<br />mail_owner = postfix<br />default_privs = nobody<br /><br />#设置路径信息<br />queue_directory = /var/spool/postfix <br />program_directory = /usr/libexec/postfix <br />command_directory = /usr/sbin <br />daemon_directory = /usr/libexec/postfix <br />mail_spool_directory = /var/spool/mail <br />mailbox_command = /usr/bin/procmail<br />   <br />#并发连接设置<br />local_destination_concurrency_limit = 2 <br />default_destination_concurrency_limit = 10 <br /><br />然后，我们执行以下命令：<br /><br />#进入postfix配置目录<br />cd /etc/postfix<br />#用newaliases初始化别名数据库<br />newaliases<br />#用postmap分别建立virtual、access和relocated查询数据库<br />postmap virtual<br />postmap access<br />postmap relocated<br />#启动postfix<br />/etc/rc.d/init.d/postfix start<br /><br />现在我们来看看virtual、access和reloacted几个查询文件的格式，下面是这几个文件的示例和注释：<br /><br />    #virtual文件示例<br />#假设在这个例子中我们有个虚拟域为other.com<br />other.com<br />     <br />    #access 文件示例<br />#如果符合前面的条件则进行后面操作，可以有三种操作：<br />#1. [45]XX $messag：拒绝接受并且向客户端显示预定义的信息<br />#2. REJECT：拒绝接受，不显示信息<br />#3. OK允许连接<br />    ispy99@noman.com.cn     550 Go away<br />    friend.com     OK<br />    202.192     REJECT<br />    <br />    #relocated 文件示例<br />    #该文件主要是将发给无系统帐号的邮件进行转发<br />    who@some.com     onetwo@newone.com<br />六、 postfix中的命令行工具及其它<br />下面我们来看一看postfix的命令行工具，通过这些工具的使用可能会使你<br />对postfix的管理更简单。<br /><br />6.1 sendmail兼容的命令行工具<br /><br />1． mailq  对邮件队列文件进行列表。表中的每一个条目包含有以下信息：<br />队列文件ID、邮件的大小、到达的时间、发件人、收件人和投递延迟的原因（如果投递有延迟的话）。该命令主要是与showq后台程序通信来获取队列文件的相关信息。该命令无参数。<br /><br />2． newaliases 该工具进行别名数据库的初始化。如果没有指定数据库的类<br />型，则使用系统默认的数据库类型（在linux下为hash）。该命令可以不带参数执行。<br /><br />6.2 postfix自带的命令行工具<br /><br />1． postcat  打印邮件队列文件的内容。后面界要显示的队列文件名，可以<br />带一个-v的参数进行冗余显示。<br /><br />2． postconf  打印配置参数设置后的值或postfix的其他信息。<br />             -d 打印配置参数的缺省值。<br />             -m 列出所有支持的查询表类型。<br />                不带参数则打印配置参数设置后的值。<br /><br />3． postmap  建立postfix查询数据库。在linux下可以直接跟上原始文件<br />而不带任何参数来建立该数据库。<br /><br />6.3 postfix的日志<br />     postfix的日志文件位于/etc/log/maillog, 文件中包含有postfix的启动信息、出错信息以及同其他SMTP服务器的会话等等。如下所示：<br /><br />Sep 10 05:54:17 mail postfix/smtpd[5072]: disconnect from unknown[204.140.244.150]<br />Sep 10 06:06:00 mail postfix/qmgr[467]: 50D403DF8: from=&lt;bye2000@yxtc.edu.cn&gt;;, size=6591 (queue active)<br />Sep 10 06:11:06 mail postfix/smtp[5085]: connect to bjmx2.163.net[202.108.255.241]: read timeout (port 25)<br />Sep 10 06:16:07 mail postfix/smtp[5085]: connect to bjmx3.163.net[202.108.255.242]: read timeout (port 25)<br />Sep 10 06:21:08 mail postfix/smtp[5085]: connect to bjmx1.163.net[202.108.255.240]: read timeout (port 25)<br /><br />*** 在postfix中使用MySQL数据库<br />     Scott Cotton 和 Joshua Marcus写了一段可以在postfix中添加mysql映射类型的代码，从而我们可以将postfix查询的别名数据库等数据存储在mysql数据库中，让postfix进行mysql查询来得到结果。这样做将有助于提供postfix的运行效率， 有其对需要不断对映射数据的站点特别有用。<br /><br />   1.为postfix添加识别mysql数据库映射的功能<br />a. 由于这段代码使用了mysql客户端库，所以我们必须安装mysql的开包。<br />可以到www.redhat.com等linux相关站点下载mysql开发包，也可以从某些linux的资源光盘中取得mysql的开发包，如MySQL-client-3.22.30-1.i386.rpm。<br />   b. 安装该开发包：<br />   rpm -ivh MySQL-client-3.22.30-1.i386.rpm<br />c. 下载postfix的源代码包，根据本章“3.1源代码包的安装”的提示进行<br />安装，但是注意在执行make命令之前先执行以下命令：<br />make -f Makefile.init makefiles 'CCARGS=-DHAS_MYSQL -I /usr/include/mysql' <br />                          'AUXLIBS=/usr/lib/mysql/libmysqlclient.a -lm'<br />   <br />5. 配置postfix使用mysql数据库映射<br />我们以alias_maps进行说明。在main.cf中指定：<br />   alias_maps = mysql:/etc/postfix/mysql-aliases.cf<br /><br />6. 编辑mysql-aliases.cf<br /><br />#首先指定登录到mysql服务器的用户名和密码<br />user = your_user_name<br />password = your_password<br /><br />#连接的数据库名称<br />dbname = your_database_name<br /><br />#查询的表名<br />table = mytable<br /><br />#添加表的字段名称<br />#forward_addr为转发地址<br />#alias为别名数据<br />select_field＝forward_addr<br />where_field=alias<br />#添加附加的查询条件<br />additional_conditions=and status='paid'<br /><br />#指定要连接的MySQL服务器<br />hosts=your.mysql.server<br /><br />   这样，当发生一个查询的时候，postfix是以这样的SQL语句进行查询的：<br />   select forward_addr from mytable where alias='$lookup' and status='paid'<br /><br />   以上只是一个例子。在实际的运用中您可以指定多个mysql数据库，使用多个数据表格。</font> <br /></p><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="/logs/3129556.html">ADMT2.0迁移案例+SIDHistory验证（第二版）</a> 2006-08-24</div><div><a href="/logs/3129545.html">Windows Server 2003 AD应用程序目录分区深入了解</a> 2006-08-24</div><div><a href="/logs/3129405.html">安装mom2005+sql200 sp4的一点心得</a> 2006-08-24</div><div><a href="/logs/3129396.html">全程记录 Microsoft Operations Manager 2005（MOM2005） 安装</a> 2006-08-24</div><div><a href="/logs/3129358.html">修改fstab文件</a> 2006-08-24</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fsquallpig.blogbus.com%2Flogs%2F3129764.html&title=%E9%82%AE%E4%BB%B6%E7%B3%BB%E7%BB%9Fpostfix%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://squallpig.blogbus.com/logs/3129764.html</link>
   <author>squall_sw</author>
   <pubDate>Thu, 24 Aug 2006 16:34:19 +0800</pubDate>
  </item>
  <item>
   <title>RedHatAS4下Apache2+MySQL+Php+Tomcat整合及虚拟主机配置</title>
   <description><![CDATA[<p><font size="2">转至CU</font></p><p><span style="FONT-SIZE: 13px"><font size="2">作者:杨文军<br /><b>一、本文所用到的软件：</b><br /><font color="#0000ff">Sun的JDK</font>：j2sdk-1_4_2_09-linux-i586.bin<br /><font color="#0000ff">Apache2.0.54</font>：httpd-2.0.54.tar.gz<br /><font color="#0000ff">MySQL</font>：mysql-standard-4.1.14-pc-linux-gnu-i686.tar.gz<br /><font color="#0000ff">Php</font>：php-4.4.2.tar.gz<br /><font color="#0000ff">Tomcat</font>：jakarta-tomcat-5.0.28.tar.gz<br /><font color="#0000ff">jakarta-tomcat-connectors-jk2</font>：jakarta-tomcat-connectors-jk2-2.0.4-src.tar.gz<br />本文中所有软件安装在<font color="#0000ff">/home/www</font>目录中。<br />注：文中<font color="#ff0000">红色字体</font>为输入的命令行。<br /><br /></font><font size="2"><b>二、软件安装<br />1、首先安装Sun的JDK</b><br />[root@yangwenjun www]# <font color="#ff0000">./j2sdk-1_4_2_09-linux-i586.bin</font><br /><br />安装后会生成文件夹j2sdk1.4.2_09，将文件夹j2sdk1.4.2_09移动（或复制）到你想要存放的JDK的位置，本文中是放在/home/www/j2sdk1.4.2_09<br />接下来编辑/etc/profile文件加入JDK环境变量，在文件末尾处加入以下内容：<br /><br />[root@yangwenjun www]# <font color="#ff0000">vi /etc/profile</font><br /><br />export JAVA_HOME=/home/www/j2sdk1.4.2_09<br />export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar<br />:$JAVA_HOME/lib/mysql-connector-java-3.2.0.jar:$JAVA_HOME/lib/classes12.jar<br />export PATH=$PATH:$JAVA_HOME/bin<br />export JRE_HOME=$JAVA_HOME/jre<br /><br />[root@yangwenjun etc]# <font color="#ff0000">source profile</font><br />[root@yangwenjun etc]# <font color="#ff0000">set</font><br /><br />在这里你可以看见所有的环境变量。<br />[root@yangwenjun etc]# <font color="#ff0000">java –version</font><br />如果JDK配置正确的话，运行上面的命令将会出现JDK的相应版本。<br /><br /><b>2、安装MySQL</b><br /><br />[root@yangwenjun www]# <font color="#ff0000">tar xzfv mysql-standard-4.1.14-pc-linux-gnu-i686.tar.gz</font><br />[root@yangwenjun www]# <font color="#ff0000">cd mysql-standard-4.1.14-pc-linux-gnu-i686</font><br />[root@yangwenjun mysql-standard-4.1.14-pc-linux-gnu-i686]# <font color="#ff0000"></font>more INSTALL-BINARY<br /><br />认真的阅读一下这个文档，就会发现MySQL很容易安装<br /><br />[root@yangwenjun mysql-standard-4.1.14-pc-linux-gnu-i686]# <font color="#ff0000">groupadd mysql</font><br />[root@yangwenjun mysql-standard-4.1.14-pc-linux-gnu-i686]# <font color="#ff0000">useradd -g mysql mysql</font><br />[root@yangwenjun www]# <font color="#ff0000">mv mysql-standard-4.1.14-pc-linux-gnu-i686 /home/www/mysql</font>     <br />[root@yangwenjun www]# <font color="#ff0000">cd /home/www/mysql</font><br />[root@yangwenjun mysql]# <font color="#ff0000">scripts/mysql_install_db --user=mysql</font><br />[root@yangwenjun mysql]# <font color="#ff0000">chown -R root .</font><br />[root@yangwenjun mysql]# <font color="#ff0000">chown -R mysql data</font><br />[root@yangwenjun mysql]# <font color="#ff0000">chgrp -R mysql .</font><br />[root@yangwenjun mysql]# <font color="#ff0000">bin/mysqld_safe --user=mysql &amp;</font><br /><br />这样MySQL就已经启动了，下面为root用户设置密码：<br /><br />[root@yangwenjun mysql]# <font color="#ff0000">./bin/mysqladmin -u root password ‘password’</font><br />[root@yangwenjun mysql]# <font color="#ff0000">./bin/mysqladmin -u root -h localhost.localdomain</font> password 'pass'<br />[root@yangwenjun mysql]# <font color="#ff0000">./bin/mysql -u root -p</font><br />Enter password:<br />Welcome to the MySQL monitor.  Commands end with ; or \g.<br />Your MySQL connection id is 5 to server version: 4.1.14-standard<br /><br />Type 'help;' or '\h' for help. Type '\c' to clear the buffer.<br /><br />mysql&gt;<br /><br />[root@yangwenjun mysql]# <font color="#ff0000">cp support-files/mysql.server /etc/init.d/mysql</font><br />[root@yangwenjun mysql]# <font color="#ff0000">vi /etc/init.d/mysql</font><br />修改如下定义使其内容为：<br />basedir=/home/www/mysql<br />datadir=/home/www/mysql/data<br />[root@yangwenjun mysql]# <font color="#ff0000">chkconfig --level 345 mysql on</font><br />[root@yangwenjun mysql]# <font color="#ff0000">service mysql restart</font><br />Shutting down MySQL...                                     [  OK  ]<br />Starting MySQL                                                  [  OK  ]<br />[root@yangwenjun mysql]#<br /><br />到这里MySQL就装好了。<br /><br /><br /><b>3、安装Apache</b><br />[root@yangwenjun httpd-2.0.54]# <font color="#ff0000">cd /home/bruce/software/www/httpd-2.0.54</font><br />[root@yangwenjun httpd-2.0.54]# <font color="#ff0000">./configure --prefix=/home/www/apache --enable-module=most --enable-shared=max --enable-so</font><br />[root@yangwenjun httpd-2.0.54]# <font color="#ff0000">make</font><br />[root@yangwenjun httpd-2.0.54]# <font color="#ff0000">make install</font><br /><br />创建一个httpd启动脚本，内容如下：<br />[root@yangwenjun init.d]# <font color="#ff0000">vi httpd</font><br />#!/bin/bash<br /># Startup script for the Apache Web Server<br /># 包含函数库<br />. /etc/rc.d/init.d/functions<br /># 获取网络配置<br />. /etc/sysconfig/network<br /># 检测 NETWORKING 是否为 &quot;yes&quot;<br />[ &quot;${NETWORKING}&quot; = &quot;no&quot; ] &amp;&amp; exit 0<br /># apache安装目录<br />APACHE=/home/www/apache<br /># 启动服务函数<br />start() {<br />echo $&quot;Starting httpd service: &quot; <br />$APACHE/bin/apachectl start<br />RETVAL=$?<br />echo<br />}<br /># 关闭服务函数<br />stop() {<br />echo $&quot;Stopping httpd service: &quot;<br />$APACHE/bin/apachectl stop<br />RETVAL=$?<br />echo<br />}<br /># 根据参数选择调用<br />case &quot;$1&quot; in<br />  start)<br />start<br />;;<br />  stop)<br />stop<br />;;<br />  restart)<br />stop<br />start<br />;;<br />  *)<br />echo $&quot;Usage: $0 start|stop|restart&quot;<br />exit 1<br />esac<br />exit 0<br />保存退出vi<br />[root@yangwenjun init.d]# <font color="#ff0000">chmod 755 httpd</font><br />[root@yangwenjun init.d]# <font color="#ff0000">chkconfig --level 345 httpd on</font><br />[root@yangwenjun conf]# <font color="#ff0000">vi httpd.conf</font><br />修改默认启动页<br />DirectoryIndex index.html index.htm default.htm default.html index.php index.php3 index.jsp<br />[root@yangwenjun init.d]# <font color="#ff0000">service httpd restart</font><br />Apache安装完毕！<br /><b>4、安装Php</b><br />[root@yangwenjun www]# <font color="#ff0000">tar zxvf php-4.4.2.tar.gz</font><br />[root@yangwenjun www]# <font color="#ff0000">cd php-4.4.2</font><br />[root@yangwenjun php-4.4.2]# <font color="#ff0000">./configure --prefix=/home/www/php --with-mysql=/home/www/mysql --with-apxs2=/home/www/apache/bin/apxs</font><br />[root@yangwenjun php-4.4.2]# <font color="#ff0000">make</font> <br />[root@yangwenjun php-4.4.2]# <font color="#ff0000">make install</font><br />[root@yangwenjun php-4.4.2]# <font color="#ff0000">cp php.ini-dist /usr/local/lib/php.ini</font><br />[root@yangwenjun php-4.4.2]# <font color="#ff0000">cd /home/www/apache/conf</font><br />[root@yangwenjun conf]# <font color="#ff0000">vi httpd.conf</font><br />#系统自动添加了这一行，如果没有则自己加入这一行。<br />LoadModule php4_module modules/libphp4.so<br />在AddType application/x-tar .tgz <br />下加一行 <br />AddType application/x-httpd-php .php <br />AddType application/x-httpd-php .php3<br />编写文件index.php 写入下一行<br />&lt;? echo phpinfo() ?&gt;<br />通过浏览器我们看到了我们的测试结果。至此，PHP装好了。<br /><br /><b>5、安装Tomcat及jakarta-tomcat-connectors-jk2</b><br />本文安装的版本是：jakarta-tomcat-5.0.28<br />[root@yangwenjun www]# <font color="#ff0000">tar xzfv jakarta-tomcat-5.0.28.tar.gz</font><br />[root@yangwenjun www]# <font color="#ff0000">cp -rf jakarta-tomcat-5.0.28 /home/www/tomcat</font><br />[root@yangwenjun www]# <font color="#ff0000">cd /home/www/tomcat</font><br />现在来测试一下tomcat是否安装成功<br />启动tomcat服务：<br />[root@yangwenjun tomcat]# <font color="#ff0000">./bin/startup.sh</font><br />访问</font><a href="http://ip:8080/" target="_blank"><font color="#000000" size="2">http://ip:8080/</font></a><font size="2">看能否看到tomcat的默认页面，如能看到说明tomcat已经在服务了.<br />停止tomcat服务：<br />[root@yangwenjun tomcat]# <font color="#ff0000">./bin/shutdown.sh</font><br /><br />开始安装jakarta-tomcat-connectors-jk2<br />[root@yangwenjun www]# <font color="#ff0000">tar xzfv jakarta-tomcat-connectors-jk2-2.0.4-src.tar.gz</font><br />[root@yangwenjun www]# <font color="#ff0000">cd jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2/</font><br />[root@yangwenjun native2]# <font color="#ff0000">./configure --with-apxs2=/home/www/apache/bin/apxs</font><br />[root@yangwenjun native2]# <font color="#ff0000">make</font><br />[root@yangwenjun native2]# <font color="#ff0000">cd ../build/jk2/apache2/</font><br />[root@yangwenjun apache2]# <font color="#ff0000">/home/www/apache/bin/apxs -n jk2 -i mod_jk2.so</font><br />上条命令是将mod_jk2.so添加到apache2的modules中.<br />上面就完成了Tomcat和Connectors的安装.接下来进行与Apache的整合.<br /><b>６、Tomcat与Apache的整合</b><br />[root@yangwenjun apache2]# <font color="#ff0000">cd /home/www/apache/conf/</font><br />[root@yangwenjun conf]# <font color="#ff0000">vi httpd.conf</font><br />编辑配置文件在其中加入这个模块，保存退出<br />LoadModule jk2_module modules/mod_jk2.so<br />然后在这个目录新建一文件workers2.properties<br />[root@yangwenjun conf]# <font color="#ff0000">vi workers2.properties</font><br />文件内容如下：<br />[root@yangwenjun conf]# more workers2.properties<br />  [channel.socket:202.114.33.249:8009]<br />  port=8009<br />  host=202.114.33.249<br />  [ajp13:202.114.33.249:8009]<br />  channel=channel.socket:202.114.33.249:8009<br />  [uri:/*]<br />  worker=ajp13:202.114.33.249:8009<br />  [uri:/examples/*]<br />  worker=ajp13:202.114.33.249:8009<br /><br />当然以上内容中的202.114.33.249也可改成localhost<br />接下来进入tomcat下的conf目录：<br />[root@yangwenjun conf]# <font color="#ff0000">cd /home/www/tomcat/conf/</font><br />修改server.xml文件<br />[root@yangwenjun conf]# <font color="#ff0000">vi server.xml</font><br />找到其中的&lt;Host&gt;中的&lt;Contest&gt;项，我修改后的相关参数如下：<br />&lt;Context path=&quot;&quot; docBase=&quot;/home/www/apache/htdocs&quot; debug=&quot;0&quot;<br />        reloadable=&quot;true&quot; crossContext=&quot;true&quot;/&gt;<br />编辑后保存退出.<br />重启Apache和Tomcat后可以查看整合后的效果.如下图所示：<br />[root@yangwenjun conf]# <font color="#ff0000">/home/www/tomcat/bin/startup.sh</font><br />[root@yangwenjun conf]# <font color="#ff0000">service httpd restart</font><br /><img onmousewheel="function anonymous()
{
return imgzoom(this);
}" onmouseover="function anonymous()
{
if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}
}" onclick="function anonymous()
{
if(!this.resized) {return true;} else {window.open('http://www.yangwenjun.com/attachments/month_0606/g2006691428.PNG');}
}" src="http://www.yangwenjun.com/attachments/month_0606/g2006691428.PNG" onload="function anonymous()
{
if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}
}" border="0" /><br /><br /><b>三、架设整合后的虚拟主机</b><br />    [root@yangwenjun conf]# <font color="#ff0000">vi /home/www/apache/conf/httpd.conf</font><br />在httpd.conf文档末尾虚拟主机设置处加入以下内容：<br />NameVirtualHost *:80<br />&lt;VirtualHost *:80&gt;<br />    Documentroot /home/www/apache/htdocs<br />&lt;/VirtualHost&gt;<br />&lt;VirtualHost *:80&gt;<br />    DocumentRoot /home/bruce/test1<br />    ServerName test1.yangwenjun.com<br />&lt;/VirtualHost&gt;<br />&lt;VirtualHost *:80&gt;<br />        DocumentRoot /home/bruce/test2<br />    ServerName test2.yangwenjun.com<br />&lt;/VirtualHost&gt;<br /><br />    [root@yangwenjun conf]# <font color="#ff0000">vi /home/www/tomcat/conf/server.xml</font><br />在server.xml文档的&lt;Engine&gt;......&lt;/Engine&gt;中间添加两段&lt;Host&gt;......&lt;/Host&gt;<br />内容如下：<br />      &lt;Host name=&quot;test1.yangwenjun.com&quot; debug=&quot;0&quot; appBase=&quot;webapps&quot;<br />       unpackWARs=&quot;true&quot; autoDeploy=&quot;true&quot;<br />       xmlValidation=&quot;false&quot; xmlNamespaceAware=&quot;false&quot;&gt;<br />        &lt;Context path=&quot;&quot; docBase=&quot;/home/bruce/test1&quot; debug=&quot;0&quot;<br />        reloadable=&quot;true&quot; crossContext=&quot;true&quot;/&gt;<br />        &lt;Logger className=&quot;org.apache.catalina.logger.FileLogger&quot;<br />                 directory=&quot;logs&quot;  prefix=&quot;localhost_log.&quot; suffix=&quot;.txt&quot;<br />            timestamp=&quot;true&quot;/&gt;<br />      &lt;/Host&gt;<br /><br />      &lt;Host name=&quot;test2.yangwenjun.com&quot; debug=&quot;0&quot; appBase=&quot;webapps&quot;<br />       unpackWARs=&quot;true&quot; autoDeploy=&quot;true&quot;<br />       xmlValidation=&quot;false&quot; xmlNamespaceAware=&quot;false&quot;&gt;<br />        &lt;Context path=&quot;&quot; docBase=&quot;/home/bruce/test2&quot; debug=&quot;0&quot;<br />        reloadable=&quot;true&quot; crossContext=&quot;true&quot;/&gt;<br />        &lt;Logger className=&quot;org.apache.catalina.logger.FileLogger&quot;<br />                 directory=&quot;logs&quot;  prefix=&quot;localhost_log.&quot; suffix=&quot;.txt&quot;<br />            timestamp=&quot;true&quot;/&gt;<br />      &lt;/Host&gt;<br /><br />重启Apache和Tomcat后可以查看架设的虚拟主机的效果.如下图：<br />[root@yangwenjun conf]# <font color="#ff0000">/home/www/tomcat/bin/startup.sh</font><br />[root@yangwenjun conf]# <font color="#ff0000">service httpd restart</font><br /><br /><img onmousewheel="function anonymous()
{
return imgzoom(this);
}" onmouseover="function anonymous()
{
if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}
}" onclick="function anonymous()
{
if(!this.resized) {return true;} else {window.open('http://www.yangwenjun.com/attachments/month_0606/e20066914235.PNG');}
}" src="http://www.yangwenjun.com/attachments/month_0606/e20066914235.PNG" onload="function anonymous()
{
if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}
}" border="0" /><br /><img onmousewheel="function anonymous()
{
return imgzoom(this);
}" onmouseover="function anonymous()
{
if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}
}" onclick="function anonymous()
{
if(!this.resized) {return true;} else {window.open('http://www.yangwenjun.com/attachments/month_0606/i20066914240.PNG');}
}" src="http://www.yangwenjun.com/attachments/month_0606/i20066914240.PNG" onload="function anonymous()
{
if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}
}" border="0" /><br /></font></span></p><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="/logs/3129764.html">邮件系统postfix安装与配置</a> 2006-08-24</div><div><a href="/logs/3129545.html">Windows Server 2003 AD应用程序目录分区深入了解</a> 2006-08-24</div><div><a href="/logs/3129443.html">ADS实际环境部署XP经验总结</a> 2006-08-24</div><div><a href="/logs/3129433.html">关于ADS学习中的一些问题总结</a> 2006-08-24</div><div><a href="/logs/3129384.html">单台Exchange2003实现RPC over HTTP</a> 2006-08-24</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fsquallpig.blogbus.com%2Flogs%2F3129730.html&title=RedHatAS4%E4%B8%8BApache2%2BMySQL%2BPhp%2BTomcat%E6%95%B4%E5%90%88%E5%8F%8A%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA%E9%85%8D%E7%BD%AE">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://squallpig.blogbus.com/logs/3129730.html</link>
   <author>squall_sw</author>
   <pubDate>Thu, 24 Aug 2006 16:20:04 +0800</pubDate>
  </item>
  <item>
   <title>我的sms2003详细安装步骤</title>
   <description><![CDATA[<font size="2">Sms2003安装步骤<br />---参考microsoft<i /> webcast<i /> 《SMS企业中的应用》《SMS.2003.实战》和论坛小折兄弟的&lt;Microsoft<i /> Systems<i /> Management<i /> Server<i /> 2003<i /> Operation<i /> Guide&gt;<br /><br />安装win2003企业版<i /> with<i /> sp1,msdn版本,hostname:test-dc,升级成DC,域名:test.com<br /><i /> </font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27293" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27293" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><font size="2">配置dns,增加反向区域,增加ptr指针,NSLOOKUP正常<br /><i /> </font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27294" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27294" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><font size="2">关闭密码安全策略,添加iis,asp.net,消息队列,BITS服务<br /><i /> </font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27295" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27295" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><font size="2">打开IIS-web服务扩展允许asp,asp.net,bits,webdav<br /><i /> </font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27296" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27296" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><font size="2">安装sql2000+sp4<br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27297" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27297" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27298" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27298" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27299" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27299" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27300" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27300" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><font size="2">安装完成打开SQL2000,运行正常,使用net<i /> share命令检查共享情况<br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27301" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27301" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><font size="2">扩展Active<i /> Directory<i /> schema<br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27302" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27302" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><font size="2">安装SMS2003,<i /> 选择<i /> Install<i /> an<i /> SMS<i /> primary<i /> site<i /> ,点击<i /> 下一步<br />选择<i /> Custom<i /> Setup<i /> ,点击<i /> 下一步<br />选择<i /> I<i /> Agree<i /> ,点击<i /> 下一步<br />Site<i /> code填写001,t点击<i /> 下一步<br />不勾选<i /> Extend<i /> the<i /> Active<i /> Directory<i /> schema<i /> ,点击<i /> 下一步<br />选择<i /> Advanced<i /> security<i /> ,点击<i /> 下一步<br />按默认数字（100）点击<i /> 下一步<br />勾选<i /> Remote<i /> Tools<i /> ,点击<i /> 下一步<br />连续点击六次<i /> 下一步，完成<br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27303" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27303" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><font size="2">安装SMS2003<i /> SP1补丁<br />运行SMS<i /> adminstraor<i /> console,定制站点边界<br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27304" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27304" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><font size="2">增加角色<br /><i /> </font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27305" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27305" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><font size="2">点击site<i /> status-component<i /> status和site<i /> system<i /> status状态一切正常<br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27306" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27306" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27307" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27307" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><font size="2">配置发现模式discovery<i /> methods<br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27310" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27310" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><font size="2">配置连接帐号connection<i /> accounts-client(之前请在ad内建设一个user权限帐号,并且添加计算机安装权限)<br /><i /> </font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27309" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27309" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><font size="2">配置自动安装客户代理服务client<i /> installation<i /> methods<br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27311" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27311" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27312" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27312" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><font size="2">起用agent,硬件发现,软件发现,软件分发<br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27313" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27313" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><font size="2">配置个别计算(看到论坛上有兄弟问如何针对个别的计算机发布软件)<br />collections,新建collections<br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27314" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27314" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27315" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27315" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27316" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27316" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><font size="2">以上配置完成<br /><br />配置所有计算机collections-all<i /> system右键-所有任务-update<i /> collection<i /> membership,OK,刷新all<i /> system<br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27317" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27317" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><i /><font size="2"> <br />安装客户端<br />All<i /> system右键<i /> 所有任务-install<i /> client<br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27318" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27318" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27319" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27319" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27320" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27320" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><font size="2">等待几分钟<br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27321" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27321" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><font size="2">至此sms2003安装和基本配置完成.<br /></font><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="/logs/3129820.html">在防火墙环境下DNS的安装与设置</a> 2006-08-24</div><div><a href="/logs/3129495.html">ntdsutil夺取FSMO</a> 2006-08-24</div><div><a href="/logs/3129433.html">关于ADS学习中的一些问题总结</a> 2006-08-24</div><div><a href="/logs/3129405.html">安装mom2005+sql200 sp4的一点心得</a> 2006-08-24</div><div><a href="/logs/3129370.html">VSFTP＋MySQL虚拟用户配置</a> 2006-08-24</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fsquallpig.blogbus.com%2Flogs%2F3129654.html&title=%E6%88%91%E7%9A%84sms2003%E8%AF%A6%E7%BB%86%E5%AE%89%E8%A3%85%E6%AD%A5%E9%AA%A4">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://squallpig.blogbus.com/logs/3129654.html</link>
   <author>squall_sw</author>
   <pubDate>Thu, 24 Aug 2006 16:17:52 +0800</pubDate>
  </item>
  <item>
   <title>Windows Rights Management Service RMS部署实战</title>
   <description><![CDATA[<p>转至winmag(yinjie)</p><p>一、预备<br />RMS系统建立在WIN2003上，其由服务端和客户端两部分组成，服务端只能安装在WIN2003上，不能安装在WIN2000或以下版本上。安装RMS需要的东西比较多，首先需要有活动目录支持，其次需要有电子邮件，还需要MSMQ（消息队列）和数据库支持。<br /><br />实验环境：<br />*<i /> 一台WIN2003服务器，文件系统为NTFS。<br />*<i /> 活动目录已经安装好，域名：ets.com.cn<br />*<i /> MSMQ和IIS（ASP.NET）均已安装<br />*<i /> MSDE<i /> 2000（我有这代替SQL<i /> SERVER，你也可以用SQL<i /> SERVER<i /> SP3代替）<br />*<i /> INTERNET连接（这一点很重要！！！）<br />满足以上要求，就可以开始安装RMS了。<br /><br />二、安装和设置RMS服务端<br />1、安装MSDE<i /> ，将MSDE下载并解包后，在其安装目录执行：Setup.exe<i /> /i<i /> setup\sqlrun10.msi<i /> INSTANCENAME=RMS<i /> DISABLEAGENTSTARTUP=1<i /> SAPWD=password，此命令的含义是建立一个名为RMS的实例的SQL<i /> 服务。见图：<br /><br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18394" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18394" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />安装完成后，你可以在服务里看到MSSQL$RMS的服务对象。<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18395" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18395" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />将它启动起来。<br /><br />2、安装RMS服务端程序<br />安装RMS服务端程序很简单，按要求提示做就可以了，标准的MSI安装程序。<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18396" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18396" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />安装好后，会在程序组里产生一个连接。<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18397" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18397" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br /><br />3、设置根认证服务器<br />打开程序组里的RMS管理项，就会看到系统袅艘桓鯥E，并打开了一个本机的网站。奇怪吗？不奇怪，RMS本身就是通过IE来设置的。<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18398" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18398" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />这就是RMS的全局管理页面，第一次进入该页面，系统会提示你需要建立一个RMS服务器，以后可以在这里进行RMS的管理和增加群集。<br />好，我们开始了，选择“在此网站设置RMS”连接，进入设置页。<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18399" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18399" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />在这里你应该可以看到系统用红色的字提示你需要建立一个根认证服务器。如果你之前安装过RMS，这里就不会显示了。<br />注意：如果你需要删除RMS根认证服务器，一定要先删除AD里的SCP才可以删除，否则你将不能再次建立根认证服务器。<br />好，接下来我们来看看需要配置的东西：<br />*<i /> 数据库：可以是本地或远程，按要求写入“服务器名\实例名”<br />*<i /> 服务帐号：可以是本地系统（不安全，不推荐）或合法的域用户（注意：这里的服务帐户不能是当前安装的用户！！）<br />*<i /> RMS证书保护：可以选择用软件保护，如图（需要设置复杂的密码）<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18400" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18400" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />如果你希望更加安全，也可以使用硬件保护（选择新建密钥对）。<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18401" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18401" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />*<i /> 服务器许可方证书：这里要写服务器管理员的信息。<br />*<i /> 代理服务器设置：因为注册服务器许可方证书需要连接INTERNET，所以这里必须设置（如没有代理，则不需设置）<br />OK，完成了，提交。<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18402" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18402" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />设置过程中，检索服务器方许可证书<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18403" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18403" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />设置完成，按提示返回全局管理页<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18404" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18404" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />返回后的全局管理页<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18405" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18405" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />你看到变化了吗？选择“在此网站上管理RMS”，就进入了管理页了。<br />提示：在这里还可以改变RMS的服务帐号或从群集中删除该网站。<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18407" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18407" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />在这个页面上，我们现在应可以看到一些服务器方许可证书的信息和过期时间等。先不管这些，看到系统用红色的提示了吗？对，首先需要注册一个服务连接点。OK，GO。。<br />点“RMS服务连接点”，进入设置页。按提示进行注册。注册后，也可以今后在这里撤消服务连接点（见删除注意事项）<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18408" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18408" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />返回全局页，现在服务器的设置基本完成了。<br />4、以下是管理页的说明：<br />1、信任策略，可以配置信任.NET<i /> PASSPORT。如果你希望DRM能和以前的IRM一起工作，必须设置。在这里还可以导出证书，或更改信任域信息。<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18409" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18409" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />2、权限策略模板，简单了，是定义企业的权限策略用的，管理员可以通过定义一些现成的策略模板让企业用户直接调用。<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18410" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18410" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />3、日志记录，显示当前日志数据库的位置<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18411" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18411" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />4、外部群集URL，可选项<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18412" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18412" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />5、RM认证用户报告，这里将显示所有使用RMS服务的用户数量（应该是用来做许可授权时用的）<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18413" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18413" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />6、安全设置，在这里是关于安全的设置了，有超级用户组（就是具有管理权限的组），还有证书密钥重设，代理设置以及取消RMS配置（删除前必须先取消配置）。<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18414" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18414" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />7、接下来是认证设置，这里是证书的有效时间<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18415" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18415" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />8、排除策略，排除测量的作用是防止非法用户使用RMS服务，这里可以定义排除的密码箱版本，WINDOWS版本、RM用户证书以及应用程序项。<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18416" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18416" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />OK，讲解到这里，服务器的配置基本结束了，下面让我们休息一会，来看看客户端的配置。<br />---------------<br />三、安装和设置RMS客户端<br />1、前言<br />RMS的客户端和以前在OFFICE2003里提供的IRM的客户端是不一样的，请大家注意区别。<br />2、安装<br />安装过程同样是简单的。直接安装即可，MSI安装程序。<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18417" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18417" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />3、激活计算机<br />进入系统盘下的DRM目录，找到ACTMACHINE命令，执行：actmachine.exe<i /> /n<i /> /p<i /> c:\wrmstemp.cab，下载密码箱。<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18418" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18418" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />下载后的密码厢<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18419" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18419" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />将密码箱解压到SYSTEM32下，然后执行命令：%WINDIR%\System32\rundll32.exe<i /> advpack.dll,LaunchINFSection<i /> secrep.inf,Install,,N<br />安装密码箱，如图<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18420" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18420" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />注意：该操作需要连接INTERNET，如果不是在RMS服务器上操作，此操作将使用RMS服务器作为注册代理注册密码箱。<br />4、启动RMS应用程序，获得用户证书<br />启动支持RMS的应用程序（如OFFICE2003），创建保护内容并获得用户证书。<br />在这里你可以选择使用PASSPORT或WINDOWS域用户。<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18421" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18421" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />登录<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18422" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18422" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />OK，你可以使用RMS了。。累死我了。。<br />验证登录信息<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18424" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18424" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />限制管理设置<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18425" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18425" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />保存后的受RMS保护的文本<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18426" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18426" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br /><br />四、排错和疑难<br />还没完，RMS设置过程比较复杂，因此容易出错，MS提供了一个检查工具来检查--IRMCHECK。你可以安装RMSTOOLSKIT获得它。<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18423" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18423" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />通过它可以看到一些有意义的错误提示，本图就是因为没有把授权群集的URL列入信任站点，导致用户证书下载失败的样本。<br />正确的IRMCHECK信息样本：<br /><br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18427" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18427" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br /><br />--------------<br />受限制文本打开的时候.<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18428" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18428" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />查看的当前权限<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18429" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18429" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a><br />被部分保护的文本格式<br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=18430" target="_blank"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=18430" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></a></p><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="/logs/3129545.html">Windows Server 2003 AD应用程序目录分区深入了解</a> 2006-08-24</div><div><a href="/logs/3129491.html">域控制器降级失败后如何删除 Active Directory 中的数据</a> 2006-08-24</div><div><a href="/logs/3129469.html">dc损坏，强制转移fsmo五种解色，可是GC无法转移，exchange无启动</a> 2006-08-24</div><div><a href="/logs/3129384.html">单台Exchange2003实现RPC over HTTP</a> 2006-08-24</div><div><a href="/logs/3129358.html">修改fstab文件</a> 2006-08-24</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fsquallpig.blogbus.com%2Flogs%2F3129598.html&title=Windows+Rights+Management+Service+RMS%E9%83%A8%E7%BD%B2%E5%AE%9E%E6%88%98">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://squallpig.blogbus.com/logs/3129598.html</link>
   <author>squall_sw</author>
   <pubDate>Thu, 24 Aug 2006 16:05:50 +0800</pubDate>
  </item>
  <item>
   <title>ADMT2.0迁移案例+SIDHistory验证（第二版）</title>
   <description><![CDATA[<p><font size="2">转至winmag(江小帅)</font></p><p><font size="2">一、实验环境配置：<br />小帅的主机为XP+sp1系统，安装了Vmware4.0并设置4台虚拟机构成实验环境，（如图ADMT00）<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15970" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15970" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">2个森林：2003domain.com（目标：2003域模式）2000domain.com（源：2000本机模式/混合模式）<br />4台计算机：dc01.2003domain.com（2003、DC、GC、DNS）、xpsp1.2003domain.com（XPSP1）、dc02.2000domain.com（2000Server、DC、GC、DNS）、pc02.2000domain.com（2000Server）<br />IP依次设置：<i /> <i /> <i /> 10.0.0.1<i /> <i /> <i /> <i /> 10.0.0.2<i /> <i /> <i /> 10.0.0.3<i /> <i /> <i /> 10.0.0.4<br />域管理员：administrator@2003domain.com<i /> 密码：P@ssw0rd<br /><i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> administrator@2000domain.com<i /> 密码：jzlld<br />注：确保两个域时钟一致（使用虚拟机完成域实验这点特别重要）<br />----------------------------------------------<br />二、域背景设置：<br />目标域：2003domain.com背景：<br />1、在2003domain.com域建立一个组织单元：Destination<br />2、在Destination内建立用户：<br />帐户：Alx.Rose<i /> 登录名：Alx@2003domain.com<i /> 密码：P@ssw0rd<br />源域：2000domain.com背景：<br />1、在2000domain.com域内建立一个组织单元：source<br />2、在Source内建立用户：<br />帐户：Kurt.Cobain<i /> 登录名Kurt@2000domain.com<i /> 密码：jzlld<i /> （不符合目标域密码复杂度要求）；<br />帐户：Courtney.Love<i /> 登录名Courtney@2000domain.com<i /> 密码：P@ssw0rd<i /> （符合目标域密码复杂度要求）；<br />3、将Courtney<i /> Love设置为Kurt<i /> Cobain的经理；<br />4、在Source内建立全局组G2000，将Kurt@2000domain.com和Courtney@2000domain.com两个用户加入到该全局组G2000；<br />5、在pc02.2000domain.com计算机上建立共享文件夹A1并在其中建立A1.txt，赋予G2000组“Full<i /> Controll”权限（共享、安全权限都这么设置）；<br />6、在pc02.2000domain.com计算机上建立共享文件夹A2并在其中建立A2.txt，赋予Kurt@2000domain.com和Courtney@2000domain.com“Full<i /> Controll”权限（共享、安全权限都这么设置）；<br />注：5、6两步的设置是为了验证SIDHistory是否有效<br />----------------------------------------------<br />三、条件准备部分：<br />1、将2003domain域提升为2003域模式（SIDHistory要求目标域模式必须为2000本机模式或更高版本）；<br />2、设置DNS：将两个域的DNS服务器互相设置转发（2003域可以设置条件转发）；<br />3、使用netdom建立信任关系（完成这个部分的操作有很多种操作方式,可以利用ADMT的信任关系向导、ADDT、netdom等），在dc01.2003domain.com上以<br />administrator@2003domain.com登录，安装2003光盘上support<i /> tools，运行netdom命令建立双向信任（如图ADMT01）<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15971" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15971" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">并利用各自域的ADDT确认设置；<br />注：具体参数请查看帮助，但要注意一定使用/enablesidhistory参数；<br /><i /> <i /> <i /> <i /> 注意命令成功后的提示信息（小帅使用红色框来注明），该信息对后面的SIDHistory的验证帮助太大了！<br />4、分别把Domain<i /> Admins组加入彼此的Administrator本地组中（如图ADMT02、ADMT03）；<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15972" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15972" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15973" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15973" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">5、在2000domain.com域和2003domain.com域各自的“域控制器策略”--“审核策略”--“审核帐户管理”中设置审核“成功、失败”，如果这步没做的话ADMT向导也会帮助你完成设置；<br />6、在目标域2003domain.com启用匿名访问（域控制器策略中-安全设置-本地策略-安全选项-“网络访问：让everyone组的权利应用到匿名用户”），然后使用命令“gpupdate.exe<i /> /tatget:computer<i /> /force”刷新计算机策略设置；<br />7、在目标域2003domain.com中把Everyone组放入“Pre-Windows<i /> 2000Compatible<i /> Access&quot;组（使用命令net<i /> localgroup<i /> &quot;pre-windows<i /> 2000<i /> compatible<i /> access&quot;<i /> everyone<i /> /add）；<br />8、在目标域dc01.2003domain.com上安装ADMT2.0到C:\ADMT2.0目录下（小帅也将其添加到管理员桌面上的2003domain.msc中，该MMC中还包含ADUC和DNS）；<br />9、如果希望将源域2000domain.com的用户迁移至目标域2003domain.com的同时用户的密码也一同迁移，需要在目标域2003domain.com上创建一个密码密钥文件，该密码密钥文件的作用是当你使用ADMT2.0（ADMT1.0不可以）来迁移密码的时候，源域2000domain.com用它来加密用户的密码并传递到目标域2003domain.com（如图ADMT04），<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15975" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15975" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">具体参数大家可以查看帮助。<br />10、将该EXWLGODY.pes文件（该文件名为随机的）通过文件共享等方式转移到源域中的dc02.2000domain.com上，小帅把它放在C盘根目录下；<br />11、在源域2000domain.com中安装密码迁移DLL。在dc02.2000domain.com虚拟机上的CD-ROM中放入2003光盘。在\I386\ADMT\PWDMIG中运行一个文件名为PWMIG.EXE的程序启动密码迁移DLL安装向导，注意定位到在10步中的C:\EXWLGODY.pes（如图ADMT05）。<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15976" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15976" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">完成操作之后需要重新启动计算机；<br />12、修改源域dc02.2000domain.com中本地安全机构的注册表<br />HKLM\System\CurrentControllSet\Control\LSA下面有一个名字为AllowPasswordExport的记录项，把这个值由0改成1。并创建以个新的REG_DWORD值项（双字节值），名为TcpipClientSupport，把这个值也设为1（以上两值如果没有建立，第一次迁移向导会做出提示，并帮助你建立，因为迁移SID历史需要以上设置）。设置好后仍然需要重新启动计算机。<br />经过以上的准备工作迁移的条件设置基本完成。这里的抓图不如小帅写《ADMT迁移案例第一版》中的多了，希望大家多多参考ADMT帮助。<br />----------------------------------------------<br />四、迁移全局组部分：<br />先迁移2000domain.com域中的全局组G2000到2003domain.com域：<br />注：肯定有人会问为什么要先迁移全局组？先迁移帐户不行吗？全局组中的成员只能是来自其各自域中的用户。因此，当将用户帐户从一个域迁移到其他域时，通过<i /> Active<i /> Directory<i /> 迁移工具在目标域中创建的新帐户不能是源域中全局组的成员。当迁移全局组时，组从属关系将被还原。然而，如果在迁移全局组之前迁移用户，那么该用户将可能通过迁移帐户登陆到目标域，而该迁移用户帐户不具备任何组从属关系。因此在该环境中，要确保顺利迁移，应在迁移Kurt和Courtney两个用户之前迁移全局组GJZLLD。以下只对关键设置做图列分析<br />1、使用administrator@2003domain.com在dc01.2003domain.com上登录并运行ADMT；<br />2、开启“组帐户迁移向导”，“下一步”；<br />3、“现在迁移”（如果在实际环境中推荐大家一定要选“测试迁移设置，然后再迁移”），“下一步”；<br />4、选中源域为2000domain目标域为2003domain，“下一步”；<br />5、添加要迁移的全局组G2000，“下一步”；<br />6、在目标OU栏中定位到2003domain.com域中的destination组织单元中，“下一步”；<br />7、一定要选中“将组SID迁移到目标域”复选框以保证该G2000组的SID被迁移到2003domain.com域（如图AGMTG01的红色标识区域），<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15977" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15977" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">其他复选框不用我多说了应该很好理解，“下一步”；<br />8、弹出对话框（如图ADMTG02），<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15978" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15978" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">这个2000domain$$$的本地组需要在2000domain.com域中建立。当然如果在“三、条件准备部分”自己手工建立，该对话框不会出现。一定要选“是”；<br />9、在“从迁移中排除具体对象的属性”中定义你所需要在迁移时排除的属性，小帅我什么都不定义，“下一步”；<br />10、输入在源域2000domain.com中有权利完成此操作的用户帐户密码，帐户：administrator密码：jzlld，“下一步”；<br />11、在“命名冲突”中设置必要设置，小帅使用默认设置，“下一步”；<br />12、“完成”组帐户迁移向导，查看日志信息（如图ADMTG03）；<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15979" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15979" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">---------------------------------------------<br />五、验证SIDHistory的有效性#%&amp;*@#$%^^<br />方法一、在2000domain.com和2003domain.com两个域的DC上分别安装ADSI工具并将其添加到各自administrator的桌面上的2000domain.msc和2003domain.msc中，然后比较2000domain\G2000的objectSID属性值与2003domain\G2000的SIDhistory属性值是一致的（如图ADMTG04、ADMTG5）。<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15980" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15980" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15981" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15981" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">证明SIDHistory确实被迁移到目标域了。<br />注：2003ADSI可以使用16进制hexadecimal、8进制octal、10进制decimal、2进制binary来显示SID信息，而2000只使用16进制hexadecimal显示SID信息，以上两图使用的是16进制hexadecimal进行的比较。<br />方法二、将Alx@2003domain.com加入到2003domain.com\G2000全局组中（如图ADMTG06），<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15982" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15982" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">然后使用该帐户在xpsp1.2003domain.com上登录并测试是否能够连接到\\pc02.2000domain.com\A1的共享，因为Alx@2003domain.com是2003domain\G2000组的成员,该组具有SIDHistory，并且该SIDHistory的值与2000domain\G2000的SID是一致的。但结果却出现&quot;拒绝访问&quot;的提示（如图ADMTG07）。<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15983" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15983" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">使用Alx@2003domain.com直接在pc02.2000domain.com登录“拒绝访问”依旧（在“域背景设置”中的5、6步小帅的操作肯定没有问题）。为什么呢???<br />解决该问题的过程：<br />小帅使用了WhoamI.exe工具（2000<i /> Resource<i /> Kits）在登录的计算机上测试，该工具可以查看一个用户登录之后封装在登录令牌中SIDs。以下是Alx@2003domain.com在<br />xpsp1.2003domain.com和pc02.2000domain.com登录之后的令牌封装SIDs比较（感谢WINMAG论坛的archangel兄弟，没他的提示我根本就没注意Whoami有/all参数）：<br />------------------------------------------<br />Alx@2003domain.com在xpsp1.2003domain.com登录之后的令牌封装：<br />C:\&gt;whoami.exe<i /> /all<br />[User]<i /> <i /> <i /> <i /> <i /> =<i /> &quot;2003DOMAIN\Alx&quot;<i /> <i /> S-1-5-21-447874980-3871260856-2932105411-1107<br />[Group<i /> <i /> 1]<i /> =<i /> &quot;2003DOMAIN\Domain<i /> Users&quot;<i /> <i /> S-1-5-21-447874980-3871260856-2932105411<br />-513<br />[Group<i /> <i /> 2]<i /> =<i /> &quot;Everyone&quot;<i /> <i /> S-1-1-0<br />[Group<i /> <i /> 3]<i /> =<i /> &quot;BUILTIN\Users&quot;<i /> <i /> S-1-5-32-545<br />[Group<i /> <i /> 4]<i /> =<i /> &quot;2003DOMAIN\G2000&quot;<i /> <i /> S-1-5-21-447874980-3871260856-2932105411-1109<br />[Group<i /> <i /> 5]<i /> =<i /> &quot;2003DOMAIN\G2000&quot;<i /> <i /> S-1-5-21-861567501-838170752-839522115-1107（这个是SIDHistory）<br />[Group<i /> <i /> 6]<i /> =<i /> &quot;LOCAL&quot;<i /> <i /> S-1-2-0<br />[Group<i /> <i /> 7]<i /> =<i /> &quot;NT<i /> AUTHORITY\INTERACTIVE&quot;<i /> <i /> S-1-5-4<br />[Group<i /> <i /> 8]<i /> =<i /> &quot;NT<i /> AUTHORITY\Authenticated<i /> Users&quot;<i /> <i /> S-1-5-11<br /><br />(X)<i /> SeChangeNotifyPrivilege<i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> =<br />(O)<i /> SeShutdownPrivilege<i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> =<br />(X)<i /> SeUndockPrivilege<i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> =<br />-----------------------------------------------<br />Alx@2003domain.com在pc02.2000domain.com登录之后的令牌封装：<br />C:\&gt;whoami.exe<i /> /all<br />[User]<i /> <i /> <i /> <i /> <i /> =<i /> &quot;2003DOMAIN\Alx&quot;<i /> <i /> S-1-5-21-447874980-3871260856-2932105411-1107<br />[Group<i /> <i /> 1]<i /> =<i /> &quot;2003DOMAIN\Domain<i /> Users&quot;<i /> <i /> S-1-5-21-447874980-3871260856-2932105411<br />-513<br />[Group<i /> <i /> 2]<i /> =<i /> &quot;Everyone&quot;<i /> <i /> S-1-1-0<br />[Group<i /> <i /> 3]<i /> =<i /> &quot;BUILTIN\Users&quot;<i /> <i /> S-1-5-32-545<br />[Group<i /> <i /> 4]<i /> =<i /> &quot;NT<i /> AUTHORITY\INTERACTIVE&quot;<i /> <i /> S-1-5-4<br />[Group<i /> <i /> 5]<i /> =<i /> &quot;NT<i /> AUTHORITY\Authenticated<i /> Users&quot;<i /> <i /> S-1-5-11<br />[Group<i /> <i /> 6]<i /> =<i /> &quot;LOCAL&quot;<i /> <i /> S-1-2-0<br />[Group<i /> <i /> 7]<i /> =<i /> &quot;2003DOMAIN\G2000&quot;<i /> <i /> S-1-5-21-447874980-3871260856-2932105411-1109<br /><br />(X)<i /> SeChangeNotifyPrivilege<i /> =<br />(X)<i /> SeUndockPrivilege<i /> =<br />-----------------------------------------------<br />结论:<br />Alx@2003domain.com在xpsp1.2003domain.com登录的时候令牌中封装了G2000的SIDHistory了，可还是不能访问（如图ADMTG07），而当Alx@2003domain.com在pc02.2000domain.com上登录的时候令牌里却根本没有封装G2000的SIDHistory郁闷了好几天，翻阅了微软的KB还有一些相关的ADMT技术文档，最后知道原来原因是：FilterSIDs的禁用与否！！！这也就是小帅为什么要在“条件准备部分-3”中强调了命令运行完的提示信息的重要性并用红色框体标识。以下给出一些FilterSIDs的相关帮助信息（太多了，小帅只摘录重要部分）：<br />----------------------------------------<br />《Microsoft<i /> KB322970》部分摘录：<br />Additional<i /> sIDHistory<i /> Information<br />The<i /> sIDHistory<i /> is<i /> a<i /> multivalued<i /> attribute<i /> of<i /> security<i /> principals<i /> in<i /> the<i /> Active<i /> <br />Directory<i /> that<i /> may<i /> hold<i /> up<i /> to<i /> 850<i /> values.<i /> To<i /> provide<i /> backward-compatibility<i /> with<i /> <br />domain<i /> controllers<i /> that<i /> are<i /> running<i /> earlier<i /> versions<i /> of<i /> Windows,<i /> the<i /> sIDHistory<i /> attribute<i /> is<i /> only<i /> available<i /> in<i /> domains<i /> that<i /> are<i /> operating<i /> at<i /> the<i /> functional<i /> <br />level<i /> of<i /> Windows<i /> 2000<i /> Native<i /> mode<i /> or<i /> later.<br />Some<i /> third-party<i /> vendor<i /> products<i /> make<i /> it<i /> possible<i /> to<i /> turn<i /> on<i /> sIDHistory<i /> in<i /> mixed<i /> mode<i /> domains.<i /> These<i /> claims<i /> do<i /> not<i /> represent<i /> the<i /> legitimate<i /> use<i /> of<i /> public<i /> <br />APIs.<i /> Domain<i /> administrators<i /> that<i /> use<i /> such<i /> tools<i /> risk<i /> putting<i /> their<i /> Active<i /> <br />Directory<i /> deployment<i /> in<i /> an<i /> unsupported<i /> state.<br />During<i /> intra-forest<i /> migrations,<i /> LDAP_Rename<i /> is<i /> responsible<i /> for<i /> moving<i /> objects.<i /> Because<i /> of<i /> this,<i /> migrated<i /> objects<i /> retain<i /> important<i /> identification<i /> data,<i /> <br />including<i /> the<i /> objectGUID<i /> and<i /> password.<i /> This<i /> is<i /> not<i /> the<i /> case<i /> for<i /> inter-forest<i /> migrations,<i /> which<i /> call<i /> DSAddSidHistory<i /> to<i /> populate<i /> the<i /> attribute<i /> in<i /> the<i /> target<i /> domain.<i /> Password<i /> migration<i /> may<i /> be<i /> turned<i /> on<i /> for<i /> inter-forest<i /> cloning,<i /> but<i /> the<i /> <br />objectGUID<i /> is<i /> always<i /> lost<i /> during<i /> this<i /> type<i /> of<i /> migration.<br /><br />In<i /> both<i /> cases,<i /> migrated<i /> objects<i /> are<i /> assigned<i /> a<i /> new<i /> sID<i /> by<i /> the<i /> target<i /> domain.<i /> The<i /> original<i /> sID<i /> is<i /> added<i /> to<i /> the<i /> sIDHistory<i /> attribute<i /> of<i /> the<i /> migrated<i /> object<i /> in<i /> the<i /> new<i /> domain.<i /> After<i /> this<i /> occurs,<i /> the<i /> sIDHistory<i /> attribute<i /> may<i /> not<i /> be<i /> modified<i /> or<i /> deleted<i /> by<i /> using<i /> the<i /> standard<i /> Active<i /> Directory<i /> administration<i /> tools.<i /> This<i /> is<i /> not<i /> permitted<i /> because<i /> the<i /> sIDHistory<i /> attribute<i /> is<i /> owned<i /> by<i /> the<i /> SAM.<i /> It<i /> is<i /> possible<i /> to<i /> clear<i /> the<i /> sIDHistory<i /> by<i /> using<i /> a<i /> script<i /> or<i /> a<i /> non-public<i /> Microsoft<i /> internal<i /> <br />tool.<i /> <br /><br />Note<i /> that<i /> the<i /> sIDHistory<i /> is<i /> a<i /> transitional<i /> tool<i /> and<i /> is<i /> not<i /> meant<i /> to<i /> exist<i /> <br />indefinitely<i /> attached<i /> to<i /> security<i /> principals.<i /> Although<i /> migrating<i /> the<i /> sIDHistory<i /> can<i /> significantly<i /> ease<i /> and<i /> simplify<i /> the<i /> domain<i /> migration<i /> process,<i /> there<i /> are<i /> important<i /> security<i /> ramifications<i /> that<i /> must<i /> be<i /> considered<i /> before<i /> you<i /> implement<i /> the<i /> sIDHistory<i /> in<i /> a<i /> production<i /> enterprise.<i /> <br /><br />A<i /> Windows<i /> 2000<i /> security<i /> token<i /> can<i /> hold<i /> a<i /> maximum<i /> of<i /> 1,023<i /> sIDs,<i /> including<i /> sIDHistory<i /> and<i /> group<i /> sIDs.<i /> Kerberos<i /> is<i /> also<i /> limited<i /> because<i /> Windows<i /> 2000<i /> <br />Kerberos<i /> has<i /> a<i /> 73-sID<i /> buffer.<i /> After<i /> you<i /> apply<i /> Windows<i /> 2000<i /> Service<i /> Pack<i /> 2<i /> (SP2),<i /> this<i /> size<i /> can<i /> be<i /> doubled<i /> by<i /> an<i /> enterprise-wide<i /> registry<i /> change.<i /> <br />----------------------------------------------------------------<br />《SIDHistory白皮书》一文部分摘录：<br />Configure<i /> SID<i /> Filtering<br />The<i /> administrator<i /> of<i /> the<i /> trusting<i /> domain<i /> applies<i /> SID<i /> filtering<i /> to<i /> filter<i /> out<i /> <br />migrated<i /> SIDs<i /> stored<i /> in<i /> SIDHistory<i /> from<i /> specific<i /> domains.<i /> For<i /> example,<i /> where<i /> an<i /> <br />external<i /> trust<i /> relationship<i /> exists<i /> so<i /> that<i /> the<i /> noam<i /> domain<i /> trusts<i /> the<i /> acquired<i /> domain,<i /> an<i /> administrator<i /> of<i /> the<i /> noam<i /> domain<i /> can<i /> apply<i /> SID<i /> filtering<i /> to<i /> the<i /> <br />acquired<i /> domain,<i /> which<i /> allows<i /> all<i /> SIDs<i /> with<i /> a<i /> domain<i /> SID<i /> from<i /> the<i /> acquired<i /> domain<i /> to<i /> pass,<i /> but<i /> all<i /> other<i /> SIDs<i /> (such<i /> as<i /> those<i /> from<i /> migrated<i /> SIDs<i /> stored<i /> in<i /> SIDHistory)<i /> to<i /> be<i /> discarded.Requirements<br />?<i /> Credentials:<i /> Domain<i /> Admins<i /> of<i /> trusting<i /> domain.<br />?<i /> Tool:<i /> Netdom.exe<i /> (Support<i /> tools)<br />-------------------------------------------------------------<i /> <br />《Windows<i /> 2003<i /> Active<i /> Directory新增特性》一文部分摘录：<br />为了防止特权提升攻击，Windows<i /> Server<i /> 2003将过滤SID以确保它们与受信任的森林中的某个域相关。这样还确保了其他森林仅颁发预定的域的授权信息，而不会传入任何未经授权的SID。<i /> SID过滤通过“森林信任”自动启用。在Windows<i /> 2000<i /> SP4中，SID过滤对外部信任关系也是默认启用的。如果您混合安装了早于Windows<i /> 2000<i /> SP4<i /> DC的版本和更高版本，那将很有趣；因为结果将取决于您使用哪个DC来创建信任。<br />重要提示：如果将用户迁移到一个使用SID<i /> History的受信任的域，您必须手动禁用SID过滤。<br />-------------------------------------------------------------<br />怪不得所有的微软的ADMT迁移案例包括Winmag杂志2004年第2期中〈活动目录迁移工具-ADMT2.0〉一文统统都是从NT4.0ADMT到2003。NT4.0域默认根本不做FilterSIDs的操作。当然没必要验证了。：）<br /><br />netdom到目前为止有3个版本（2000/XP/2003）应该使用哪一个呢？小帅分别尝试了，在2000/2003的support中的netdom根本没有/FilterSIDs参数（为什么我也不知道，我的XP虚拟机是SP1的），如果硬是使用一定会出现参数错误，应该使用XP的版本，于是在xpsp1.2003domain.com上安装了XP的support工具，使用administrator@2003domain.com在xpsp1.2000domain.com登录运行命令（如图ADMTG08）<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15984" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15984" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">然后使用Alx@2003domain.com在xpsp1.2003domain.com（pc02.2000domain.com也可以）上登录，访问\\pc02.2000domain.com\A1（如图ADMTG09）。<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15985" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15985" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">访问成功并可以完全控制（幽Winmag论坛一默！呵呵）SIDHistory确实在起作用！！！！！！！<br />---------------------------------------------<br />六、迁移用户部分：<br />迁移源域2000domain.com的两个用户帐户Kurt@2000domain.com和Courtney@2000domain.com到目标域2003domain.com\destination组织单元<br />当利用ADMT迁移用户帐户出现“密码选项”的时候要注意，因为这里要迁移密码了，所以如果选择“复杂密码”或“与用户名相同”，则用户的密码会统一的保存到一个文本文件。因为我们在“条件准备部分9、10”项已经选择了要迁移密码的，所以在这里我们选择最下面的一项“迁移密码”并在“密码迁移源DC”中定位dc02也就是dc02.2000domain.com（如图ADMTU01）。<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15986" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15986" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">注意SID历史的选择（如图ADMTU02），<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15987" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15987" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">完成操作的日志（如图ADMTU03）。<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15988" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15988" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">迁移之后Kurt@2003domain.com的经理也自动更改为Courtney@2003domain.com了（如图ADMTU04）。<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15989" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15989" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">七、验证SIDHistory部分：<br />方法一：使用ADSI比较，这个在上面迁移组的时候有讨论！不复述了；<br />方法二：让Kurt@2003domain.com在网络上登录，然后访问\\pc02.2000domain.com\A2文件夹，因为在“2000domain.com域背景”部分已经设置了A2的共项权限Kurt@2000domain.com和Courtney@2000domain.com“Full<i /> Controll”权限（共享、安全权限都这么设置），由于FilterSIDs的禁用，所以SIDHitory可以正常使用。<br />----------------------------------------<br />八、迁移计算机帐户部分：<br />注：在迁移计算机帐户的时候使用administrator@2003domain.com帐户来运行迁移向导往往会在迁移的最后出现错误（如图ADMTC01），<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15990" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15990" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">原因是administrator@2000domain.com虽然已经被加入到2000domain\Domain<i /> Admins组了，但对2000domain.com域中每台计算机的帐户操作权限不够，所以在最后让目标计算机重新启动的时候出现“拒绝访问，安装代理的时候失败了”的提示（ADMT2.0不用额外在目标计算机上安装代理）。解决办法很简单，让administrator@2000domain.com在dc01.2003domain.com上登录然后运行ADMT2.0来迁移计算机帐户。<br />1、在“转换对象”的设置步骤中，可以根据需要做适当选择（如图ADMTC02）；<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15991" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15991" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">2、在“安全性转换选项”中，选择“替换”，也可以根据需要选择“添加”和“删除”；<br />3、如果在“转换对象”步骤中，选择了“用户权利”并在上一步中选择了“替换”，在这一步中将出现提示（如图ADMTC03）；<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15992" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15992" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">4、设置“计算机机选项”中目标计算机重新启动的时间，1分钟及命名的一些设置（如图ADMT04）；<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15993" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15993" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">5、当所有设置完成之后出现代理的安装及运行对话框（如图ADMTC05），<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15994" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15994" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">在目标计算机pc02.2000domain.com上出现倒记时提示（如图ADMT06）<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15995" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15995" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">6、重新启动之后，以administrator@2003domain.com登录，在计算机属性--网络标识；<br />7、在c:\B1和c:\B2的权限设置上也有了相应的变化（如图ADMTC07），<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15996" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15996" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">这是因为我们在“转换对象”的设置中选择了“文件和文件夹”还有“共享”；<br />---------------------------------------<br />九、后续处理部分：<br />1、断开信任关系，可以使用ADDT或netdom命令:<br />“netdom<i /> trust<i /> 2000domain.com<i /> /uo:administrator<i /> /po:jzlld<i /> /d:2003domain.com<i /> /ud:administrator<i /> /pd:P@ssw0rd<i /> /remove<i /> /twoway”；<br />2、卸载dc02.2000domain.com，如果有必要可以重新安装OS，然后再加入到2003domain.com域中，因为源域中的DC是不能够以DC身份迁移目标域的。<br />十、删除SID历史部分<br />由于当整个迁移完成之后，迁移过来的对象都被赋予了新的SID，并且源域2000domain.com也已经彻底消失了，SIDHistory已经没有存在的必要。利用一个脚本文件将指定对象的SIDHistory属性值删除。比如Kurt@2003domain.com对象的SIDHistory属性值为Kurt@2000domain.com的objectSID属性值“01<i /> 05<i /> 00<i /> 00<i /> 00<i /> 00<i /> 00<i /> 05<i /> 15<i /> 00<i /> 00<i /> 00<i /> 0D<i /> 7A<i /> 5A<i /> 33<i /> 80<i /> 78<i /> F5<i /> 31<i /> 43<i /> 17<i /> 0A<i /> 32<i /> 51<i /> 04<i /> 00<i /> 00”（16进制），我们可以利用KB295758中的脚本来删除该SIDHistory属性的值，运行操作如下：<br />1、将该脚本ClearSidHistory.vbs拷贝到C盘<br />2、运行命令（如图ADMTS01）<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15997" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15997" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">3、然后再利用ADSI查看一下对象Kurt@2003domain.com的属性SIDHistory的值为“Not<i /> Set”（如图ADMTS02）<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=15998" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=15998" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">4、利用此脚本将所有SIDHistory删除<br /></font></p><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="/logs/3129820.html">在防火墙环境下DNS的安装与设置</a> 2006-08-24</div><div><a href="/logs/3129545.html">Windows Server 2003 AD应用程序目录分区深入了解</a> 2006-08-24</div><div><a href="/logs/3129460.html">用vmware gsx做WINDOWS2000 / windows 2003 的群集</a> 2006-08-24</div><div><a href="/logs/3129405.html">安装mom2005+sql200 sp4的一点心得</a> 2006-08-24</div><div><a href="/logs/3129396.html">全程记录 Microsoft Operations Manager 2005（MOM2005） 安装</a> 2006-08-24</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fsquallpig.blogbus.com%2Flogs%2F3129556.html&title=ADMT2.0%E8%BF%81%E7%A7%BB%E6%A1%88%E4%BE%8B%2BSIDHistory%E9%AA%8C%E8%AF%81%EF%BC%88%E7%AC%AC%E4%BA%8C%E7%89%88%EF%BC%89">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://squallpig.blogbus.com/logs/3129556.html</link>
   <author>squall_sw</author>
   <pubDate>Thu, 24 Aug 2006 16:02:25 +0800</pubDate>
  </item>
  <item>
   <title>Windows Server 2003 AD应用程序目录分区深入了解</title>
   <description><![CDATA[<p><font size="2">转至winmag(江小帅)</font></p><p><font size="2">Windows<i /> Server<i /> 2003<i /> AD应用程序目录分区深入了解<br /><i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> <i /> ----------------江小帅<br /><br />微软的技术知识库实在是太庞大了，以至一些新的功能我们在彻底熟悉的时候会花费太多的时间，没办法，这是由于产品的复杂性决定的。面对OS或服务组件及AD我们应该经常问的是：默认为什么会出现这个？为什么要有这样的功能？这个功能如何实现？这个功能有什么限制？拿此文做例子，可能一些人认为不去了解活动目录的应用程序目录分区或DNS区域中随DC增加而带来的新记录的变化，网络环境也一样运行。呵呵！那就大可不必看了。<br /><br />一、Windows<i /> Server<i /> 2003<i /> AD应用程序目录分区<br /><br />1)<i /> 什么是应用程序目录分区？<br /><br />应用程序目录分区是仅复制到特定域控制器的目录分区。参与特定应用程序目录分区复制的域控制器寄存该分区的副本。只有运行<i /> Windows<i /> Server<i /> 2003<i /> 的域控制器可以寄存应用程序目录分区的副本。应用程序目录分区可包含任何类型的对象（除了安全主体）。在Windows<i /> 2000的DC时代默认DC上会存留三个常规的目录分区：Schema目录分区，Configuration目录分区，Domain目录分区（如果是GC的话，那么还存在GC的目录）。Schema目录分区全森林复制，一般也很少对其做修改设置，除非当安装像Exchange这样的应用程序或需要添加雇员的ID和Number到AD的时候这个分区的内容才会需要更改。Configuration目录分区也是全森林复制的，对于域配置的变化，DC的增加减少，站点的变化等而随之变化。所以对于一个成熟的企业域环境，这个变化也会很少。Domain目录分区为全域复制的分区，这个分区微软当初定义的时候是用来容纳一些user、computer、OU、GPO等对象。基本上一个公司的这些对象在使用Domain目录分区存储的时候变化是客观的，用户或计算机、策略的变化必然要使维持这个目录分区的宿主DC之间同步。那为什么Windows<i /> 2003还要提供应用程序目录分区的功能呢？<br /><br />2)<i /> 为什么Windows<i /> 2003<i /> AD要支持应用程序目录分区？<br /><br />AD的对象一般都是相对静态的，这样对提高DC的性能、提高KCC之间的平衡有很大的帮助。所以在“向AD中发布对象”的时候对于经常，频繁性变化的对象不适合使用AD这样的分布数据库来进行存储。在Windows<i /> 2000<i /> DC时代，DNS的区域是可以集成到AD的，这是因为AD的数据库为了优化客户程序定位DC必须需要DNS来实现底层的定位，而将DNS的区域文件保存在AD的数据库里可以实现客户程序以任意形式来定位任意DC，那么DNS的区域保存在哪里？答案是保存在Domain目录分区里（图5指出了DNS区域文件如果存储在Domain目录分区时它的位置），它将在域的范围内复制，这就让一些不提供DNS服务但身份是DC的计算机干了“狗拿耗子”的事情（也有备份的考虑在内）。DNS的区域记录对于一些网络也是经常变化的，比如客户计算机名字频繁变化的环境，所有的同域DC都在跟着复制变化的DNS区域记录，不管你到底提不提供DNS服务（类比一下电影《大腕》里王小柱说的话：直播要覆盖到全球每个角落，允许你不看，但不允许说你收不到）。所以活动目录应用程序分区才在Windows<i /> 2003中出现了。<br /><br />3)<i /> 目录应用程序的命名<br /><br />提前理解这个有利于帮助我们理解2003AD默认的DNS应用程序目录分区。应用程序目录分区是整个林名称空间的一部分，就像域目录分区一样。它与域目录分区遵循相同的域名系统<i /> (DNS)<i /> 和可分辨名称命名约定。应用程序目录分区可出现在林名称空间中可出现域目录分区的任何地方。在林名称空间中，应用程序目录分区可能出现在三处：域目录分区的子项、应用程序目录分区的子项、林中的新树。<br /><br />二、Windows<i /> Server<i /> 2003<i /> DNS应用程序目录分区（创建jzlld.org的AD环境，所有计算机全部为2003SP1的操作系统）<br /><br />1)<i /> 默认的DNS应用程序分区<br />默认全新装Windows<i /> Server<i /> 2003<i /> DC的时候AD会自动创建两个应用程序目录分区：ForestDnsZones目录分区、DomainDnsZones目录分区。这两个目录分区都可以存储DNS的区域记录。但复制的范围（复制作用域）是不一样的，一个是整个森林范围内的DC间复制，一个域范围内的DC间复制。<br /><br />2)<i /> DNS区域的创建向导<br />DNS区域的创建向导会出现一个特殊的选项如图1，理解这些选项的区别将帮助我们理解区域的复制，更涉及到DC上KCC的运行性能。<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27205" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27205" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><i /><font size="2"> <br />“至Active<i /> Directory林jzlld.org中的所有DNS服务器”---将创建的DNS区域存储在默认的ForestDnsZones.jzlld.org应用程序目录分区，所以将导致创建的DNS区域被复制到森林jzlld.org中所有运行2003DC并提供DNS服务的服务器上。<br />“至Active<i /> Directory域jzlld.org中的所有DNS服务器”---将创建的DNS区域存储在默认的DomainDnsZones.jzlld.org应用程序目录分区，所以将导致创建的DNS区域被复制到域jzlld.org中所有运行2003DC并提供DNS服务的服务器上。<br />“至Active<i /> Directory域jzlld.org中的所有域控制器”---将创建的DNS区域存储在Domain目录分区，所以将导致创建的DNS区域被复制到域jzlld.org中所有的域控制器上。因为2000不支持应用程序目录分区，所以当域中包含2000操作系统的DC时推荐选择此项。<br /><br />“到在以下应用程序目录分区的范围内指定的所有域控制器”（默认灰色）---只有当使用应用程序目录分区创建命令创建一个新的应用程序目录分区的时候才可以使用，小帅在后面的部分中将创建一个应用程序目录分区之后，这个部分就可以选择了。<br /><br />3)<i /> 建立森林jzlld.org中的第一台域控制器：dc01.jzlld.org<br />默认建立林中第一台DC的时候都会让Dcpromo向导自动安装DNS服务，安装过程小帅在这里忽略了。建立好的该DC之后，我们来仔仔细细看看DNS区域及DNS特殊记录。如图2<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27206" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27206" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">DNS区域：<br /><br />默认Dcpromo创建了两个DNS区域：_msdcs.jzlld.org、jzlld.org，小帅自己手工创建了一个DNS反向搜索区域：10.0.0.x<i /> subnet，下面小帅一个个的说明这些区域。<br />DNS区域_msdcs.jzlld.org的“复制作用域”为“至Active<i /> Directory林jzlld.org中的所有DNS服务器”，所以该DNS区域实际上是存储在ForestDnsZones.jzlld.org这个默认创建的DNS应用程序分区中了。注意该区域是被默认委派的，因为在jzlld.org的区域里面有一个委派记录。图3是利用ADSI显示该应用程序分区的情况。<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27207" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27207" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><i /><font size="2"> <br />提示：Dcpromo默认创建的名为_msdcs.jzlld.org的DNS区域是主持<i /> Active<i /> Directory<i /> 林中所有域控制器的域控制器定位器<i /> DNS<i /> 资源记录。它还可用于在<i /> Active<i /> Directory<i /> 域或<i /> Active<i /> Directory<i /> 林中定位具有特定角色的域控制器（PDC、GC），如果域已重命名，则可通过搜索域控制器的<i /> GUID<i /> 来定位它（那个长长数字）。另外http://support.microsoft.com/kb/817470/zh-cn中详细说明了Windows<i /> 2000及Windows<i /> 2003在创建默认的DNS区域时的不同、升级到Windows<i /> 2003的DNS做配置全林性应用程序目录分区的修改、理解_msdcs区域在windows<i /> 2003域控制器中的任一的两中存储方式。另外注意在Windows<i /> Server<i /> 2003<i /> SP1<i /> 中，当创建一个已位于现有区域下的新的正向查找区域时，向导会在该现有区域下自动创建一个新的委派。<br /><br />DNS区域jzlld.org的复制作用域为“至Active<i /> Directory域jzlld.org中的所有DNS服务器”，所以该DNS区域实际上是存储在DomainDnsZones.jzlld.org这个默认创建的DNS应用程序分区中了。图4是利用ADSI显示该应用程序分区的情况。<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27208" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27208" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><i /><font size="2"> <br />DNS区域10.0.0.x<i /> subnet的复制作用域小帅在创建的时候选择的是“至Active<i /> Directory域jzlld.org中的所有域控制器”，所以该DNS区域实际上是存储在Domain目录分区中了。图5显示的是利用ADSI显示的该目录分区<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27209" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27209" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">DC=RootDNSServers容器中保存的是根提示<br /><br />特殊的DNS记录：<br /><br />回到图2上，在区域jzlld.org下有两个“域”：ForestDnsZones和DomainDnsZones。这两个位置是用来说明：在哪台DC宿主ForestDnsZones.jzlld.org应用程序目录分区（所以该记录的格式只有tcp.sitename._site.forestdnszones.jzlld.org.或tcp.forestdnszones.jzlld.org形式，别忘了该目录分区是林复制性的，所以没域什么事儿），哪台DC是宿主DomainDnsZones.jzlld.org应用程序目录分区的，此时的SRV记录都应该时dc01.jzlld.org，<br /><br />图6是利用Replmon.exe显示的dc01.jzlld.org上的目录分区情况（由于是第一台DC，所以没有任何复制链接）<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27210" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27210" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">利用LDP.exe也显示了dc01.jzlld.org上存在5个NamingContexts（目录分区），如图7高亮显示的部分（注意他们的DN格式）<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27211" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27211" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">4)<i /> 建立域jzlld.org中的第二台域控制器：dc02.jzlld.org<br />在建立域jzlld.org的第二台域控制器的时候，默认都是将要成为dc02.jzlld.org的计算机的DNS服务器地址指向dc01.jzlld.org。Dcpromo向导不会有是否选择安装DNS服务的提示。安装步骤小帅这里省略。安装完dc02.jzlld.org重启后并没有安装DNS服务，所以dc02.jzlld.org上不应该宿主ForestDnsZones.jzlld.org和DomainDnsZones.jzlld.org这两个应用程序目录分区。图8是利用LDP.exe显示dc02.jzlld.org的名称上下文<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27212" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27212" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><i /><font size="2"> <br />下面的图9是利用Replmon.exe查看的复制情况（两台DC都属于一个站点，形成的是站点内部的复制）<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27213" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27213" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">大家也可以在c:\windows\debug\下找到Dcpromo.txt。该文件内详细说明了，当dc02被提升为DC的时候从dc01上复制了哪些目录分区。（只有3个）<br />在DNS控制台中jzlld.org区域下面的两个特殊“域”中仍然只有dc01的SRV记录，因为此时dc02上根本就没有任何应用程序目录分区。<br /><br />接下来在dc02.jzlld.org上安装DNS服务，安装步骤小帅省略，这样经过一定的复制周期，站点链接建立完成，同步完成之后，dc02.jzlld.org将与dc01.jzlld.org一样拥有5个名称上下文。如图10所示<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27214" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27214" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">在DNS的控制台中我们也可以看到jzlld.org区域下面的两个特殊的“域”内包含了两个DC提供LDAP服务的SRV记录。如图11我们以“DomainDnsZones”域为例证明目前应用程序分区DomainDnsZones.jzlld.org存在两个副本。应用程序目录分区ForestDnsZones.jzlld.org也是一样的。<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27215" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27215" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><i /><font size="2"> <br />其他识别应用程序目录分区的工具和办法：<br />Configuration目录分区中的Partition容易下包含了所有的应用程序目录分区，这样每个域的DC在复制这个名称上下文的时候都可以查看到森林中有哪些应用程序目录分区。在每一个应用程序目录分区的属性中有一个属性叫msDS-NC-Replica-Locations，这个属性的值决定着该目录分区的副本有几个，也就是都由哪几台DC来宿主的。如图12<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27216" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27216" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><i /><font size="2"> <br />图12中ForestDnsZones应用程序目录分区的msDS-NC-Replica-Locations属性值有两个：<br />CN=NTDS<i /> Settings,CN=DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configureation,DC=jzlld,DC=org<br />CN=NTDS<i /> Settings,CN=DC02,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configureation,DC=jzlld,DC=org<br /><br />msDS-NC-Replica-Locations属性值请参考以下链接：<br />http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ad/ad/active_directory.asp<br />应用程序目录分区的对象类型是crossRef，请参考以下链接：<br />http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adschema/adschema/c_crossref.asp<br /><br />你也可以使用dnscmd的一个子命令来查询某个DNS应用程序目录分区的情况。比如在dc01上查看DNS应用程序目录分区ForestDnsZones.jzlld.org的信息可以使用如下命令：<br />“dnscmd.exe<i /> dc01.jzlld.org<i /> /DirectoryPartitionInfo<i /> ForestDnsZones.jzlld.org”<br /><br />5)<i /> 建立子域sub.jzlld.org并建立该域的第一台域控制器：dc03.sub.jzlld.org<br />在建立子域sub.jzlld.org的第一台域控制器的时候，将dc03的DNS服务器的地址指向dc01，这样可以使其联系到域命名FSMO（dc01.jzlld.org），以便对新域命名及对新DC的添加给予允许操作。Dcpromo同样也不会出现安装DNS服务的提示。建立的步骤小帅省略（3台DC都在一个站点内部）。这样的3台DC的KCC同步是需要时间的，所以等“AD站点和服务”中出现了环状链接说明KCC服务已经达到平衡了。dc03会在dc01的jzlld.org区域创建一个“子域”sub，并将自己的一些SRV记录登记在下面，当然也会在dc01的_msdcs.jzlld.org区域注册一些记录，别忘了上面我们提到的这个DNS区域的作用。<br /><br />利用replmon.exe查看的目录分区及应用程序分区复制情况如图13，（请看仔细，略微有点儿长）<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27217" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27217" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">为什么dc01.jzlld.org有一个“DC=sub,DC=jzlld,DC=org”的名称上下文，而且是单向的？因为dc01.jzlld.org是GC（注意dc01上的特殊标记），需要从sub域内的基础机构主控（dc03.sub.jzlld.org）抄写该域对象的属性子集。如果dc02.jzlld.org也是GC的话，那么它也会有这样一个名称上下文。<br /><br />此时，应用程序目录分区的msDS-NC-Replica-Locations属性仍然是两个值，因为dc03目前还不是DNS服务器。而且dc01和dc02的DNS控制台中的两个特殊的“域”（ForestDnsZones和DomainDnsZones）也不会有什么变化，依然是两个LDAP服务的SRV记录，分别是dc01和dc02的。<br /><br />接下来对jzlld.org区域做区域分割，将目前的DNS区域名称空间分割成两个区域：jzlld.org和sub.jzlld.org，然后做授权给dc03.sub.jzlld.org来维护DNS区域sub.jzlld.org的操作并在dc03.sub.jzlld.org上安装DNS服务并建立相应的区域，修改dc03.sub.jzlld.org网卡上的DNS服务器地址的指向，配置对jzlld.org区域的所有查询转发到dc01.jzlld.org（一定要注意配置转发）。建立的步骤小帅省略。此时dc03应该有默认的ForestDnsZones.jzlld.org的应用程序目录分区（DNS区域_msdcs.jzlld.org能够自动复制到dc03就说明了这点），还应该有自己本域的一个默认应用程序目录分区：DomainDnsZones.sub.jzlld.org（这个应用程序目录分区与DomainDnsZones.jzlld.org是不同的，可以查看两个应用程序目录分区的GUID及他们的宿主来区别）如图14<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27218" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27218" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">dc01.jzlld.org的DNS区域jzlld.org的两个“域”（ForestDnsZones和DomainDnsZones）的变化如图15、如图16<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27219" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27219" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">ForestDnsZones.jzlld.org应用程序目录分区的3个宿主分别在该“域”内注册了LDAP的SRV记录。<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27220" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27220" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><i /><font size="2"> <br />DomainDnsZones.jzlld.org应用程序目录分区的2个宿主分别在该“域”内注册了LDAP的SRV记录，因为这个应用程序目录分区是在jzlld.org域内的DC兼DNS的计算机上宿主的。所以没有dc03的LDAP服务的SRV记录，只有dc01和dc02的。<br /><br />当小帅在dc03.sub.jzlld.org的自己的DNS控制台上创建一个DNS区域sub.jzlld.org，并且复制作用域设置为“至Active<i /> Directory域sub.jzlld.org中的所有DNS服务器”的时候，在该DNS区域下将出现DomainDnsZones“域”，其内的记录为DomainDnsZones.sub.jzlld.org应用程序目录分区宿主dc03上的LDAP服务注册的SRV记录，如图17<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27221" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27221" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><i /><font size="2"> <br />为什么反向查找区域没有区域？？<br />因为小帅在dc01上创建10.0.0.x<i /> subnet区域的时候设置该区域是在jzlld.org域内的全域复制的，所以它包含在jzlld.org域的Domain目录分区内，当然不会被复制过来。<br /><br />为什么sub.jzlld.org的DNS区域下面没有名为ForestDnsZones“域”？<br />因为宿主ForestDnsZones.jzlld.org应用程序目录分区的宿主SRV记录保存在dc01和dc02的DNS区域jzlld.org下面，是不会复制到该位置的。_msdcs.jzlld.org区域能够出现（不是小帅手工创建的，是复制出来的）能够出现本身也意味着dc03.sub.jzlld.org计算机是ForestDnsZones.jzlld.org应用程序目录分区的宿主。<br /><br />既然这样，那如果子域sub中的一些应用程序目录分区的客户端应用程序需要定位企业中的某些应用程序目录分区那怎么办？？<br />别忘了，小帅说过Configuration目录分区中包含了企业中的所有名称上下文，也就是包含了所有AD林中的目录分区（目录分区和应用程序分区），并且该目录分区是全林性复制的。另外从一个应用程序分区的命名上客户端程序就知道应该上哪台DNS上去定位记录了。如图18<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27222" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27222" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><i /><font size="2"> <br />jzlld.org企业森林中到目前为止有7种不同的名称上下文（目录分区），至于它们各自的复制作用域，各位自己分析吧。<br /><br />6)<i /> 命令行工具dnscmd<br />这个工具可以用来管理DNS应用程序目录分区，大家可以参看如下链接<br />http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/ServerHelp/15791aea-a110-400f-a99a-4e3efe3a5cc2.mspx?mfr=true<br />http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/ServerHelp/15791aea-a110-400f-a99a-4e3efe3a5cc2.mspx?mfr=true<br />http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/ServerHelp/15791aea-a110-400f-a99a-4e3efe3a5cc2.mspx?mfr=true<br />http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/ServerHelp/15791aea-a110-400f-a99a-4e3efe3a5cc2.mspx?mfr=true<br /><br />默认情况下，DNS<i /> 服务器服务将尝试在<i /> Active<i /> Directory<i /> 中定位和创建默认的<i /> DNS<i /> 应用程序目录分区。如果<i /> DNS<i /> 服务器服务无法做到这一点，那么管理员可以使用该过程手动创建应用程序目录分区。如果当前在<i /> Active<i /> Directory<i /> 中默认的<i /> DNS<i /> 应用程序目录分区可用，在<i /> DNS<i /> 控制台中创建默认应用程序目录分区的选项将不可用。可以使用DNS控制台，也可以使用命令行工具dnscmd.exe来完成该操作。<br />默认情况下，只有<i /> Enterprise<i /> Admins<i /> 组的成员才可以创建<i /> DNS<i /> 应用程序目录分区。<br /><br />利用dnscmd.exe命令来创建一个DNS应用程序分区。<br />小帅在dc01.jzlld.org上利用dnscmd.exe命令行工具来创建一个DNS应用程序分区，FQDN名字为TestDnsZones.jzlld.org。如图19<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27223" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27223" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">此时，在dc01上的DNS控制台中创建一个DNS区域jxs.org并将其存储在小帅刚建立好的DNS应用程序目录分区TestDnsZones.jzlld.org中，此时在选择上有区别了。如图20<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27224" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27224" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">注意，由于此时DNS应用程序目录分区TestDnsZones.jzlld.org只登记了dc01.jzlld.org这台计算机，所以只能在dc01上建立区域的时候有这个特殊的选项，在dc02、dc03上的DNS控制台上创建区域的时候都不会出现该选项。<br /><br />图21是在dc01上建立好名为jxs.org的DNS区域之后出现的一个特殊的“域”TestDnsZones及dc01上LDAP服务注册的SRV记录<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27225" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27225" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><i /><font size="2"> <br />接下来小帅将<i /> dc02、dc03登记到该目录分区，让dc01、dc02和dc03这三台DC兼DNS的计算机来宿主这个DNS应用程序目录分区TestDnsZones.jzlld.org。要执行此过程，必须是<i /> Active<i /> Directory<i /> 中<i /> DnsAdmins组（默认域管理员不是这个组的成员，另外注意DnsAdmins是本地组）<i /> 或域管理员组的成员，或者被委派了适当的权限。如图22、图23<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27226" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27226" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27227" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27227" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><i /><font size="2"> <br />下面是DNS控制台中和DNS应用程序目录分区TestDnsZones.jzlld.org的msDS-NC-Replica-Locations属性的截图及DNS控制台中该应用程序目录分区的注册记录。如图24<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27228" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27228" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><i /><font size="2"> <br />当然你也可以利用“dnscmd.exe<i /> servername<i /> /UnenlistDirectoryPartition<i /> FQDN”命令来删除某个服务器在某个应用程序分区的登记。<br /><br />注意：因为DNS应用程序目录分区也是应用程序目录分区的一种，所以使用dnscmd命令是无法删除该应用程序目录分区的，只能使用ntdsutil命令来删除应用程序目录服务分区，下面的部分小帅会介绍利用ntdsutil命令对应用程序目录分区的操作。<br /><br />三、 自定义应用程序目录分区<br />应用程序目录分区不一定就是为了DNS这个应用程序使用，以上AD默认创建的ForestDns.jzlld.org、DomainDnsZones.jzlld.org和小帅手工创建的TestDnsZones.jzlld.org几个DNS应用程序目录分区是专为DNS这个应用程序设置的目录分区，当然我们也可以根据企业的相关需要来为可行的应用程序定义应用程序目录分区，并设置他们的复制范围。比如很多企业使用的TAPI就是一个很好的例子，TAPI的详细内容请参考：http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tapi/tapi3/telephony_application_programming_interfaces.asp<br />http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/ServerHelp/7055a4b3-33ec-43a5-9cf9-9bd547b1f6ae.mspx?mfr=true<br /><br />在使用ntdsutil命令来管理应用程序目录分区的之前需要先理解一些概念<br /><br />1)<i /> 应用程序分区的命名（在第一部分中我们已经解释了）<br /><br />2)<i /> 应用程序目录分区复制<br />信息一致性检查器<i /> (KCC)<i /> 自动生成和维护企业中所有应用程序目录分区的复制拓扑。当应用程序目录分区在多个站点拥有副本时，那些副本和域目录分区有着相同的站点间复制日程安排。<br /><br />3)<i /> 安全描述符参考域<br />网络的每个容器和对象都有一组附加于其中的访问控制信息。此信息称为安全描述符，可控制用户、组和计算机所允许的访问类型。如果对象或容器未被创建它的应用程序或服务分配安全描述符，那么它将被分配架构中定义的该对象类的默认安全描述符。这种默认的安全描述符是不明确的，它向<i /> Domain<i /> Admins<i /> 组的成员分配对对象的读取权限，但不指定域管理员属于哪个域。当在某个域命名分区中创建该对象时，此域命名分区就用来指定读取权限实际上分配给了哪个<i /> Domain<i /> Admins<i /> 组。<br />在应用程序目录分区中创建对象时，默认安全描述符的定义是不同的，因为应用程序目录分区可以在属于不同域的不同域控制器上拥有副本。因为存在这种潜在的不确定性，所以在创建应用程序目录分区时会分配一个默认的安全描述符参考域。<br />默认的安全描述符参考域定义了当该应用程序目录分区中的对象需要为默认安全描述符定义域值时应使用什么域名。默认的安全描述符参考域是在创建时分配的。如果该应用程序目录分区是某个域目录分区的子项，那么在默认情况下，父域目录分区将变成安全描述符参考域。如果该应用程序目录分区是另一个应用程序目录分区的子对象，则父应用程序目录分区的安全描述符参考域将变成新的子应用程序目录分区的参考域。如果新的应用程序目录分区创建为新树的根，那么此林根域将用作默认的安全描述符参考域。<br /><br />4)<i /> 应用程序分区和DC的升、降级<br />如果域控制器拥有某个应用程序目录分区的副本，则必须从该应用程序目录分区的副本集中删除此域控制器，或者删除该应用程序目录分区，然后才能降级此域控制器。<i /> <br />如果域控制器拥有某个应用程序目录分区的“最新”副本，则必须删除该应用程序目录分区，然后才能降级此域控制器。<br /><br />理解以上的应该差不多了，其他的相关资源请参考Windows<i /> Server<i /> 2003帮助或<br />http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/ServerHelp/6a561189-2221-47fd-be72-c85cb42949f2.mspx?mfr=true<br /><br />5)<i /> 小帅先利用ntdsutil将在上面建立的TestDnsZones.jzlld.org的应用程序目录分区的3个副本删除，然后将该应用程序目录分区删除，如图25，在此小帅使用的命令全部为缩写并且没有显示帮助。<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27229" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27229" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><i /><font size="2"> <br />此时存储在该DNS应用程序目录分区TestDnsZones.jzlld.org内的DNS区域jxs.org中的数据也将被删除，从整个AD中消失，你也可以使用上面小帅介绍的各种方法来检验该DNS目录分区的存在。如图26<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27230" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27230" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">小帅然后建立一个新的应用程序目录分区名为AppDS.sub.jzlld.org（注意命名和默认参考域），并将dc01,dc03作为该应用程序目录分区的副本集。如图27<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27231" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27231" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><i /><font size="2"> <br />因为在运行ntdsutil的时候connect的就是dc01，所以当创建该应用程序目录分区的时候dc01就已经是该目录分区的副本了，所以只添加dc03就可以了。<br />该应用程序分区当你在创建DNS区域并选择“复制作用域”的时候也是可见的，就跟图20选择的位置类似。<br /><br />图28显示的是使用LDP查看dc01上存储的目录分区及查看AppDS.sub.jzlld.org应用程序分区属性msDS-NC-Replica-Locations值的情况。<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27232" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27232" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><i /><font size="2"> <br />到此其他操作应该非常简单了。请参考ntdsutil.exe帮助信息或Windows<i /> Server<i /> 2003<i /> AD帮助或<br />http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/ServerHelp/6a561189-2221-47fd-be72-c85cb42949f2.mspx?mfr=true<br /><br />四、 从媒体安装域控制器的应用程序目录相关<br /><br />2003SP1提供了一个功能就是从媒体来安装新的域控制器，如果想实现从媒体的无应答安装，并复制相应的应用程序目录分区需要提升林功能，并安装2003SP1。下面小帅将jzlld.org林提升功能（要求森林中的每个域都为2003模式才可以提升整个森林的模式），并将dc04利用媒体的安装形式将其提升为jzlld.org域的第三台DC，还要将我们在上面刚刚建立的应用程序目录分区AppDS.sub.jzlld.org及默认的DNS应用程序目录分区之一ForestDnsZones.jzlld.org复制到dc04，注意dc04上没有安装DNS服务（小帅省略所有操作步骤，只将应答文件及最终结果呈现）。如图29、图30<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27233" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27233" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27234" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27234" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><i /><font size="2"> <br />注意：其中c:\Ntdsretore为小帅将备份好的dc01的系统状态SystemState.bkf恢复到dc04上的“备用位置”生成的临时文件夹。<br /><br />验证AppDS.sub.jzlld.org应用程序分区如图31<br /><br /></font><a title="点击可查看大图" href="http://www.winmag.com.cn/forum/imgdisp.asp?src=showimg.asp?ID=27235" target="_blank"><font size="2"><img src="http://www.winmag.com.cn/forum/showimg.asp?ID=27235" width="500" onload="function anonymous()
{
if(this.width>500)this.width=500
}" border="0" /></font></a><br /><br /><font size="2">具体步骤请参考<br />http://support.microsoft.com/kb/311078/zh-cn<br /><br />五、注意事项及相关资源<br />http://support.microsoft.com/default.aspx?scid=kb;en-us;867464#appliesto#appliesto<br />“Event<i /> ID<i /> 4515<i /> is<i /> logged<i /> in<i /> the<i /> DNS<i /> Server<i /> log<i /> in<i /> Windows<i /> Server<i /> 2003”。理解完应用程序目录分区就知道为什么会出现4515的错误了。<br /><br />http://windowssdk.msdn.microsoft.com/library/default.asp?url=/library/en-us/adschema/adschema/a_dnstombstoned.asp<br />应用程序目录分区的限制<br /><br />http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ad/ad/active_directory.asp<br />该链接从目录架构的方面描述了应用程序目录分区<br /><br />http://technet2.microsoft.com/WindowsServer/en/Library/2bd36720-ed2e-47ed-a80d-fa43a403b4361033.mspx<br />DNS与AD应用程序之间的关系（包扩GC）<br /><br />http://support.microsoft.com/kb/817470/zh-cn<br />在从<i /> Windows<i /> 2000<i /> 升级到<i /> Windows<i /> Server<i /> 2003<i /> 时，如何将<i /> _msdcs<i /> 子域重新配置为全林性<i /> DNS<i /> 应用程序目录分区<br /><br />http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/ServerHelp/bb99fdd4-f8e0-490f-adae-6814cf081ff7.mspx?mfr=true<br />Active<i /> Directory<i /> 的新功能概述<br /></font></p><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="/logs/3129654.html">我的sms2003详细安装步骤</a> 2006-08-24</div><div><a href="/logs/3129495.html">ntdsutil夺取FSMO</a> 2006-08-24</div><div><a href="/logs/3129480.html">使用ntdsutil工具删除已不存的的DS对象的一个例子</a> 2006-08-24</div><div><a href="/logs/3129460.html">用vmware gsx做WINDOWS2000 / windows 2003 的群集</a> 2006-08-24</div><div><a href="/logs/3129443.html">ADS实际环境部署XP经验总结</a> 2006-08-24</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fsquallpig.blogbus.com%2Flogs%2F3129545.html&title=Windows+Server+2003+AD%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9B%AE%E5%BD%95%E5%88%86%E5%8C%BA%E6%B7%B1%E5%85%A5%E4%BA%86%E8%A7%A3">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://squallpig.blogbus.com/logs/3129545.html</link>
   <author>squall_sw</author>
   <pubDate>Thu, 24 Aug 2006 15:55:49 +0800</pubDate>
  </item>
  <item>
   <title>ntdsutil夺取FSMO</title>
   <description><![CDATA[<div><font size="2">c:&gt;ntdsutil<br />ntdsutil: metadata cleanup<br />metadata cleanup: select operation target<br />select operation target: connections<br />server connections: connect to domain test.com<br />select operation target: list sites<br />Found 1 site(s)<br />0 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=com<br />select operation target: select site 0<br />Site - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=com<br />No current domain<br />No current server<br />No current Naming Context<br />select operation target: List domains in site<br />Found 1 domain(s)<br />0 - DC=test,DC=com<br />Found 1 domain(s)<br />0 - DC=test,DC=com<br />select operation target: select domain 0<br />Site - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=com<br />Domain - DC=test,DC=com<br />No current server<br />No current Naming Context<br />select operation target: List servers for domain in site<br />Found 2 server(s)<br />0 - CN=A,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=te<br />st,DC=com<br />1 - CN=B,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=te<br />st,DC=com<br />select operation target: select server ０<br />select operation target: quit<br />metadata cleanup:Remove selected server<br /><br />出现对话框，按“确定“删除Ａ主控服务器。<br />metadata cleanup:quit<br />ntdsutil: quit<br /><br />然后在Active Directory users and computers中的Domain controllers中删除A服务器对象<br />再到Active Directory Sites and Service中删除A服务器对象<br /><br /><br />二、在额外控制器(B)上通过ntdsutil.exe工具夺取五种ＦＭＳＯ；<br />c:&gt;ntdsutil<br />ntdsutil: roles<br />fsmo maintenance: Select operation target<br />select operation target: connections<br />server connections: connect to domain test.com<br />select operation target: list sites<br />Found 1 site(s)<br />0 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=com<br />select operation target: select site 0<br />Site - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=com<br />No current domain<br />No current server<br />No current Naming Context<br />select operation target: List domains in site<br />Found 1 domain(s)<br />0 - DC=test,DC=com<br />select operation target: select domain 0<br />Site - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=com<br />Domain - DC=test,DC=com<br />No current server<br />No current Naming Context<br />select operation target: List servers for domain in site<br />Found 1 server(s)<br />0 - CN=B,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=te<br />st,DC=com<br />select operation target: select server ０<br />select operation target: quit<br />fsmo maintenance:Seize domain naming master<br />出现对话框，按“确定“<br />fsmo maintenance:Seize infrastructure master<br />出现对话框，按“确定“<br />fsmo maintenance:Seize PDC<br />出现对话框，按“确定“<br />fsmo maintenance:Seize RID master<br />出现对话框，按“确定“<br />fsmo maintenance:Seize schema master<br />出现对话框，按“确定“<br />fsmo maintenance:quit<br />ntdsutil: quit<br /><br /><br /><br />三、设置额外控制(B)为ＧＣ（全局编录），<br />Administrative Tools--&gt;Active Directory Sites and Services--&gt;Sites--&gt;Default-First-Site-Name--&gt;Servers--&gt;B(额外控制器）--&gt;NTDS Settings--&gt;右键--&gt;属性--&gt;在”全局编录“前面打勾--&gt;确定--&gt;重新启动服务器<br /><br />五、重新安装Ａ服务器:<br />在Ａ服务器安装windows，运行Dcpromo升成额外的域控制器；如果你需要使Ａ担任五种FMSO角色，通过ntdsutil工具进行角色转换就行了。 <br /></font></div><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="/logs/3129556.html">ADMT2.0迁移案例+SIDHistory验证（第二版）</a> 2006-08-24</div><div><a href="/logs/3129545.html">Windows Server 2003 AD应用程序目录分区深入了解</a> 2006-08-24</div><div><a href="/logs/3129469.html">dc损坏，强制转移fsmo五种解色，可是GC无法转移，exchange无启动</a> 2006-08-24</div><div><a href="/logs/3129427.html">Automated Deployment Services （ADS）实录</a> 2006-08-24</div><div><a href="/logs/3129396.html">全程记录 Microsoft Operations Manager 2005（MOM2005） 安装</a> 2006-08-24</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fsquallpig.blogbus.com%2Flogs%2F3129495.html&title=ntdsutil%E5%A4%BA%E5%8F%96FSMO">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://squallpig.blogbus.com/logs/3129495.html</link>
   <author>squall_sw</author>
   <pubDate>Thu, 24 Aug 2006 15:54:06 +0800</pubDate>
  </item>
  <item>
   <title>域控制器降级失败后如何删除 Active Directory 中的数据</title>
   <description><![CDATA[<div><font size="2">概要<br />本文介绍在域控制器降级失败后，如何删除 Active Directory 中的数据。<br /><br />警告：如果使用“ADSI 编辑”管理单元、LDP 实用工具或任何其他 LDAP 版本 3 客户端，并且不恰当地修改了 Active Directory 对象的属性，则可能造成严重问题。要解决这些问题，您可能需要重新安装 Microsoft Windows 2000 Server、Microsoft Windows Server 2003、Microsoft Exchange 2000 Server 或 Microsoft Exchange Server 2003，或者 Windows 和 Exchange 二者都需要重新安装。Microsoft 不保证能够解决因为 Active Directory 对象属性修改不当而导致的问题。修改这些属性需要您自担风险。<br /><br />Active Directory 安装向导 (Dcpromo.exe) 用于将服务器提升为域控制器，以及将域控制器降级为成员服务器（或者在该域控制器是域中的最后一个域控制器时，将其降级为工作组中的独立服务器）。作为降级过程的一部分，此向导会将该域控制器的配置数据从 Active Directory 中删除。此数据的形式是“NTDS 设置”对象，在“Active Directory 站点和服务”中作为服务器对象的一个子对象存在。<br /><br />该信息位于 Active Directory 中的以下位置：<br />CN=NTDS Settings,CN=&lt;servername&gt;,CN=Servers,CN=&lt;sitename&gt;,CN=Sites,CN=Configuration,DC=&lt;domain&gt;...<br />“NTDS 设置”对象的属性包括：代表如何针对域控制器的复制伙伴标识域控制器的数据、计算机中保存的名称上下文、域控制器是否为全局编录服务器，以及默认查询策略。“NTDS 设置”对象也是一个容器，其中可以包含代表域控制器的直接复制伙伴的子对象。该数据是域控制器在环境中运行所必需的，但域控制器降级后就不再使用该数据了。<br /><br />如果未正确删除“NTDS 设置”对象（例如，未从降级尝试中正确删除“NTDS 设置”对象），管理员可以使用 Ntdsutil.exe 实用工具手动删除“NTDS 设置”对象。以下步骤列出了在特定域控制器的 Active Directory 中删除“NTDS 设置”对象的过程。在每个 Ntdsutil 菜单上，管理员可以键入 help 以了解有关可用选项的更多信息。<br /><br />警告：在手动删除任何服务器的“NTDS 设置”对象之前，管理员还必须确保在降级之后已进行了复制。Ntdsutil 实用工具使用不当可能导致 Active Directory 功能部分或全部丧失。<br /><br />返回页首<br />过程<br />1. 单击“开始”，指向“程序”，指向“附件”，然后单击“命令提示符”。<br />2. 在命令提示符处，键入 ntdsutil，然后按 Enter 键。<br />3. 键入 metadata cleanup，然后按 Enter 键。根据所给出的选项，管理员可以执行删除操作，但在实施删除之前还必须指定另外一些配置参数。<br />4. 键入 connections，然后按 Enter 键。此菜单用于连接将发生这些更改的具体服务器。如果当前登录的用户没有管理权限，可以在建立连接之前指定要使用的替代凭据。为此，请键入 set creds DomainNameUserNamePassword，然后按 Enter 键。如果密码为空，则键入 null 作为密码参数。<br />5. 键入 connect to server servername，然后按 Enter 键。然后出现一条确认消息，说明已成功建立该连接。如果出现错误，则确认连接中所用的域控制器是否可用，以及您提供的凭据对该服务器是否有管理权限。<br /><br />注意：如果尝试连接的服务器正是要删除的服务器，那么在尝试删除第 15 步提到的服务器时，将显示以下错误信息：<br />Error 2094. The DSA Object cannot be deleted0x2094<br />6. 键入 quit，然后按 Enter 键。将出现清除元数据菜单。<br />7. 键入 select operation target，然后按 Enter 键。<br />8. 键入 list domains，然后按 Enter 键。将显示一个列出目录林中所有域的列表，每一个域都有一个关联的编号。<br />9. 键入 select domain number，然后按 Enter 键；其中 number 是与要删除的域相关联的编号。您选择的域用于确定要删除的服务器是否为该域的最后一个域控制器。<br />10. 键入 list sites，然后按 Enter 键。将显示一个站点列表，每个站点都有一个关联的编号。<br />11. 键入 select site number，然后按 Enter 键；其中 number 是与要删除的域相关联的编号。将出现一条确认消息，其中列出了所选的站点和域。<br />12. 键入 list servers in site，然后按 Enter 键。将显示一个列出站点中所有服务器的列表，每个服务器都有一个关联的编号。<br />13. 键入 select server number，其中 number 是与要删除的服务器关联的编号。将出现一条确认消息，其中列出所选的服务器、该服务器的域名服务器 (DNS) 主机名，以及要删除的服务器的计算机帐户的位置。<br />14. 键入 quit，然后按 Enter 键。将出现清除元数据菜单。<br />15. 键入 remove selected server，然后按 Enter 键。将出现一条确认消息，说明删除成功完成。如果出现以下错误信息：<br />Error 8419 (0x20E3)<br />The DSA object could not be found<br />则说明“NTDS 设置”对象可能已从 Active Directory 中删除，原因是其他管理员删除了该“NTDS 设置”对象，或者在运行 DCPROMO 实用工具成功删除对象后再执行一次此操作。<br /><br />注意：尝试绑定到要删除的域控制器时，也可能会出现此错误。Ntdsutil 必须绑定到要用 metadata cleanup 删除的域控制器以外的其他域控制器。<br />16. 在每个菜单中键入 quit，退出 NTDSUTIL 实用工具。将出现一条确认消息，说明连接已成功断开。<br />17. 在 DNS 的 _msdcs.root domain of forest 区域中删除 cname 记录。假定要重新安装并重新提升 DC，因此使用新的 GUID 和 DNS 中匹配的 cname 记录来创建新的“NTDS 设置”对象。您不希望现有 DC 使用旧的 cname 记录。<br /><br />最佳做法是删除主机名和其他 DNS 记录。如果已超出为脱机服务器分配的动态主机配置协议 (DHCP) 地址上所剩的租用时间，另一个客户端即可获得问题 DC 的 IP 地址。<br />既然“NTDS 设置”对象已删除，因此可以删除计算机帐户、FRS 成员对象、_msdcs 容器中的 cname（或别名）记录、DNS 中的 A（或主机）记录、已删除的子域的 trustDomain 对象以及域控制器。<br /><br />Windows 2000 Server 和 Windows Server 2003 的 Windows 支持工具功能中都附带有 Adsiedit 实用工具。要安装 Windows 支持工具，请按照下列步骤操作：&quot; Windows 2000 Server：在 Windows 2000 Server 安装光盘上，打开 Support\Tools 文件夹，双击“Setup.exe”，然后按照屏幕上的说明操作。<br />&quot; Windows Server 2003：在 Windows Server 2003 安装光盘上，打开 Support\Tools 文件夹，双击“Suptools.msi”，单击“安装”，然后按照 Windows 支持工具安装向导中的步骤操作以完成安装。<br />1. 使用 ADSIEdit 删除计算机帐户。为此，请按照下列步骤操作： a. 单击“开始”，单击“运行”，在“打开”框中键入 adsiedit.msc，然后单击“确定”。<br />b. 展开“域 NC”容器。<br />c. 展开“DC=Your Domain Name, DC=COM, PRI, LOCAL, NET”。<br />d. 展开“OU=Domain Controllers”。<br />e. 右键单击“CN=domain controller name”，然后单击“删除”。<br />如果在试图删除 DSA 对象时出现“DSA object cannot be deleted”错误信息，请更改 UserAccountControl 值。要更改 UserAccountControl 值，请在 ADSIEdit 中右键单击该域控制器，然后单击“属性”。在“请选择要查看的属性”下，单击“UserAccountControl”。单击“清除”，将该值更改为 4096，然后单击“设置”。现在您可以删除该对象了。<br /><br />注意：删除计算机对象时，也将删除 FRS 订户对象，因为它是计算机帐户的子对象。<br />2. 使用 ADSIEdit 删除 FRS 成员对象。为此，请按照下列步骤操作： a. 单击“开始”，单击“运行”，在“打开”框中键入 adsiedit.msc，然后单击“确定”。<br />b. 展开“域 NC”容器。<br />c. 展开“DC=Your Domain, DC=COM, PRI, LOCAL, NET”。<br />d. 展开“CN=System”。<br />e. 展开“CN=File Replication Service”。<br />f. 展开“CN=Domain System Volume (SYSVOL share)”。<br />g. 右键单击要删除的域控制器，然后单击删除。<br /><br />3. 在 DNS 控制台中，使用 DNS MMC 删除 DNS 中的 A 记录。A 记录也称为“主机”记录。要删除 A 记录，请右键单击 A 记录，然后单击“删除”。还要删除“_msdcs”容器中的 cname（也称为“别名”）记录。为此，请展开“_msdcs”容器，右键单击 cname，然后单击“删除”。<br /><br />重要说明：如果这是一台 DNS 服务器，请在名称服务器选项卡中删除对该 DC 的引用。为此，在 DNS 控制台中，在正向搜索区域下单击该域名，然后从名称服务器选项卡中删除该服务器。<br /><br />注意：如果有反向搜索区域，也要将服务器从这些区域中删除。<br />4. 如果删除的计算机是子域中的最后一个域控制器，而且该子域也已删除，则使用 ADSIEdit 删除该子域的 trustDomain 对象。为此，请按照下列步骤操作： a. 单击“开始”，单击“运行”，在“打开”框中键入 adsiedit.msc，然后单击“确定”。<br />b. 展开“域 NC”容器。<br />c. 展开“DC=Your Domain, DC=COM, PRI, LOCAL, NET”。<br />d. 展开“CN=System”。<br />e. 右键单击“Trust Domain”对象，然后单击“删除”。<br /><br />5. 使用“Active Directory 站点和服务”删除域控制器。为此，请按照下列步骤操作： a. 启动“Active Directory 站点和服务”。<br />b. 展开“站点”。<br />c. 展开服务器的站点。默认站点为“Default-First-Site-Name”。<br />d. 展开“服务器”。<br />e. 右键单击域控制器，然后单击删除。<br /><br />另外，请考虑以下几点：&quot; 如果删除的域控制器曾经是一台全局编录服务器，请评估指向这台脱机全局编录服务器的应用程序服务器是否必须指向一台活动的全局编录服务器。<br />&quot; 如果删除的 DC 曾经是一台全局编录服务器，请评估是否必须提升其他全局编录，以解决站点、域或林全局编录的负载问题。<br />&quot; 如果删除的 DC 曾经担任 Flexible Single Master Operation (FSMO) 角色，请将这些角色重新分配给一台活动 DC。<br />&quot; 如果删除的 DC 曾经是一台 DNS 服务器，请更新所有成员工作站、成员服务器以及其他可能使用过这台 DNS 服务器进行名称解析的 DC 上的 DNS 客户端配置。如果需要，请修改 DHCP 作用域，以反映出 DNS 服务器已删除。<br />&quot; 如果删除的 DC 曾经是一台 DNS 服务器，请更新所有其他可能指向该 DC 以进行名称解析的 DNS 服务器上的转发器设置和委派设置。<br /></font></div><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="/logs/3129820.html">在防火墙环境下DNS的安装与设置</a> 2006-08-24</div><div><a href="/logs/3129730.html">RedHatAS4下Apache2+MySQL+Php+Tomcat整合及虚拟主机配置</a> 2006-08-24</div><div><a href="/logs/3129598.html">Windows Rights Management Service RMS部署实战</a> 2006-08-24</div><div><a href="/logs/3129545.html">Windows Server 2003 AD应用程序目录分区深入了解</a> 2006-08-24</div><div><a href="/logs/3129384.html">单台Exchange2003实现RPC over HTTP</a> 2006-08-24</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fsquallpig.blogbus.com%2Flogs%2F3129491.html&title=%E5%9F%9F%E6%8E%A7%E5%88%B6%E5%99%A8%E9%99%8D%E7%BA%A7%E5%A4%B1%E8%B4%A5%E5%90%8E%E5%A6%82%E4%BD%95%E5%88%A0%E9%99%A4+Active+Directory+%E4%B8%AD%E7%9A%84%E6%95%B0%E6%8D%AE">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://squallpig.blogbus.com/logs/3129491.html</link>
   <author>squall_sw</author>
   <pubDate>Thu, 24 Aug 2006 15:53:02 +0800</pubDate>
  </item>
  <item>
   <title>使用ntdsutil工具删除已不存的的DS对象的一个例子</title>
   <description><![CDATA[<div><font size="2">转自winmag<br /><br />使用ntdsutil工具删除已不存的的DS对象的一个例子<br />（本例中假定要删除的对象为一台已崩溃的DC，其FQDN为addemo.acme.com，另一DC的FQDN为adddc.acme.com）<br /><br />C:\&gt;<span style="COLOR: red">ntdsutil</span><br />ntdsutil: <span style="COLOR: red">metadata cleanup</span> - 清理不使用的服务器的对象<br />metadata cleanup: <span style="COLOR: red">select operation target</span> - 选择的站点，服务器，域，角色和命名上下文<br />select operation target: <span style="COLOR: red">connections</span> - 连接到一个特定域控制器<br />server connections: <span style="COLOR: red">connect to server adddc</span> - 连接到adddc<br />绑定到 adddc ...<br />用本登录的用户的凭证连接 adddc。<br />server connections: <span style="COLOR: red">quit</span> - 返回上一层目录<br /><br />select operation target: <span style="COLOR: red">list site</span> - 在企业中列出站点(找到1个站点，标识为0)<br />找到 1 站点<br />0 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=acme,DC=com<br />select operation target: <span style="COLOR: red">select site 0</span> - 将标识为 0 的站点定为所选站点<br />站点 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=acme,DC=com<br />没有当前域<br />没有当前服务器<br />当前的命名上下文<br /><br />select operation target: <span style="COLOR: red">list domains</span> - 列出所有包含交叉引用的域<br />找到 1 域<br />0 - DC=acme,DC=com<br />select operation target: <span style="COLOR: red">select domain 0</span> - 将标识为 0 的域定为所选域<br />站点 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=acme,DC=com<br />域 - DC=acme,DC=com<br />没有当前服务器<br />当前的命名上下文<br /><br />select operation target: <span style="COLOR: red">list servers for domain in site</span> - 列出所选域和站点中的服务器(找到两个：0-adddemo.acme.com；1-adddc.acme.com)<br />找到 2 服务器<br />0 - CN=ADDEMO,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=acme,DC=com<br />1 - CN=ADDDC,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=acme,DC=com<br />select operation target: <span style="COLOR: red">select server 0</span> - 将标识为 0 的服务器（addemo）定为所选服务器——也就是要删除的DC<br />站点 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=acme,DC=com<br />域 - DC=acme,DC=com<br />服务器 - CN=ADDEMO,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=acme,DC=com<br />DSA 对象 - CN=NTDS Settings,CN=ADDEMO,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configur<br />DNS 主机名称 - ADdemo.acme.com<br />计算机对象 - CN=ADDEMO,OU=Domain Controllers,DC=acme,DC=com<br />当前的命名上下文<br /><br />select operation target: <span style="COLOR: red">quit</span> - 返回上一层目录<br /><br />metadata cleanup: <span style="COLOR: red">remove select server</span> - 从所选服务器上删除 DS 对象<br />在弹出的对话提示框上选择“是”，<br />“CN=ADDemo,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=acme,DC=com”删除了，从服务器“adddc”<br />现在，addemo.acme.com这个DS对象将和你的AD说永别了:)<br /><br />同时记得：还要从ADSIEDIT中删除相关的一些对像</font></div><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="/logs/3129764.html">邮件系统postfix安装与配置</a> 2006-08-24</div><div><a href="/logs/3129443.html">ADS实际环境部署XP经验总结</a> 2006-08-24</div><div><a href="/logs/3129433.html">关于ADS学习中的一些问题总结</a> 2006-08-24</div><div><a href="/logs/3129405.html">安装mom2005+sql200 sp4的一点心得</a> 2006-08-24</div><div><a href="/logs/3129370.html">VSFTP＋MySQL虚拟用户配置</a> 2006-08-24</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fsquallpig.blogbus.com%2Flogs%2F3129480.html&title=%E4%BD%BF%E7%94%A8ntdsutil%E5%B7%A5%E5%85%B7%E5%88%A0%E9%99%A4%E5%B7%B2%E4%B8%8D%E5%AD%98%E7%9A%84%E7%9A%84DS%E5%AF%B9%E8%B1%A1%E7%9A%84%E4%B8%80%E4%B8%AA%E4%BE%8B%E5%AD%90">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://squallpig.blogbus.com/logs/3129480.html</link>
   <author>squall_sw</author>
   <pubDate>Thu, 24 Aug 2006 15:52:35 +0800</pubDate>
  </item>
 </channel>
</rss>
