<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>gjw_apparitor 博客</title>
	<atom:link href="http://www.apparitor.info/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.apparitor.info</link>
	<description>孤独是一种态度</description>
	<lastBuildDate>Tue, 25 Oct 2011 02:19:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>F5 V11 Analytics 功能试用</title>
		<link>http://www.apparitor.info/2011/10/25/410/</link>
		<comments>http://www.apparitor.info/2011/10/25/410/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 02:03:50 +0000</pubDate>
		<dc:creator>gjw_apparitor</dc:creator>
				<category><![CDATA[Lvs]]></category>

		<guid isPermaLink="false">http://www.apparitor.info/2011/10/25/410/</guid>
		<description><![CDATA[9月份 F5发布新的版本 V11，性能和功能都提升了不少。 1、Analytics模块开启： System ›› Resource Provisioning 里 开启 Application Visibility and Reporting (AVR) 这个模块。 2、在VS里 Analytics Profile 选择 analytics. 3、过10多分钟后会在 Overview ›› Statistics : Analytics 里看到一些数据。 例： 所有Response Code的统计和TPS 所有Pool Member的TPS 等 &#160; &#160; URLs：显示每个URL的TPS，方便查出哪个URL的时间最长。对研发和运维的帮助都很大。 功能非常强大，有图有数据。非常不错。 &#160; 原创文章，转载请注明： 转载自gjw_apparitor 博客 本文链接地址: F5 V11 Analytics 功能试用]]></description>
			<content:encoded><![CDATA[<p>9月份 F5发布新的版本 V11，性能和功能都提升了不少。<br />
1、Analytics模块开启：<br />
System ›› Resource Provisioning 里 开启 Application Visibility and Reporting (AVR) 这个模块。<br />
2、在VS里 Analytics Profile 选择 analytics.<br />
3、过10多分钟后会在 Overview ›› Statistics : Analytics 里看到一些数据。</p>
<p>例：</p>
<p>所有Response Code的统计和TPS</p>
<p><a href="http://www.apparitor.info/wp-content/uploads/2011/10/Screenshot-2011-10-25-100151.png"><img class="alignnone size-medium wp-image-411" title="Screenshot-2011-10-25 10:01:51" src="http://www.apparitor.info/wp-content/uploads/2011/10/Screenshot-2011-10-25-100151-300x156.png" alt="" width="300" height="156" /></a></p>
<p>所有Pool Member的TPS 等</p>
<p><a href="http://www.apparitor.info/wp-content/uploads/2011/10/Screenshot-111.png"><img class="alignnone size-medium wp-image-415" title="Screenshot-111" src="http://www.apparitor.info/wp-content/uploads/2011/10/Screenshot-111-300x196.png" alt="" width="300" height="196" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>URLs：显示每个URL的TPS，方便查出哪个URL的时间最长。对研发和运维的帮助都很大。</p>
<p>功能非常强大，有图有数据。非常不错。</p>
<p>&nbsp;
<div style="margin-top: 15px; font-style: italic">
<p><strong>原创文章，转载请注明：</strong> 转载自<a href="http://www.apparitor.info/">gjw_apparitor 博客</a></p>
<p><strong>本文链接地址:</strong> <a href="http://www.apparitor.info/2011/10/25/410/">F5 V11 Analytics 功能试用</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.apparitor.info/2011/10/25/410/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>redhat Django+apache</title>
		<link>http://www.apparitor.info/2011/10/10/redhat-djangoapache/</link>
		<comments>http://www.apparitor.info/2011/10/10/redhat-djangoapache/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 09:27:58 +0000</pubDate>
		<dc:creator>gjw_apparitor</dc:creator>
				<category><![CDATA[Django]]></category>

		<guid isPermaLink="false">http://www.apparitor.info/?p=408</guid>
		<description><![CDATA[http://www.howtoforge.com/how-to-install-django-on-fedora9-apache2-mod_python 原创文章，转载请注明： 转载自gjw_apparitor 博客 本文链接地址: redhat Django+apache]]></description>
			<content:encoded><![CDATA[<p>http://www.howtoforge.com/how-to-install-django-on-fedora9-apache2-mod_python
<div style="margin-top: 15px; font-style: italic">
<p><strong>原创文章，转载请注明：</strong> 转载自<a href="http://www.apparitor.info/">gjw_apparitor 博客</a></p>
<p><strong>本文链接地址:</strong> <a href="http://www.apparitor.info/2011/10/10/redhat-djangoapache/">redhat Django+apache</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.apparitor.info/2011/10/10/redhat-djangoapache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>通过tcpdump分析服务器初始的接收窗口大小</title>
		<link>http://www.apparitor.info/2011/09/20/397/</link>
		<comments>http://www.apparitor.info/2011/09/20/397/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 03:59:39 +0000</pubDate>
		<dc:creator>gjw_apparitor</dc:creator>
				<category><![CDATA[Network]]></category>
		<category><![CDATA[tcpdump]]></category>

		<guid isPermaLink="false">http://www.apparitor.info/2011/09/20/397/</guid>
		<description><![CDATA[参加了2011系统架构师大会在 “TCP协议优化在互联网行业的应用” 听到刘泓昊对TCP的优化很受启发。 之前我测试过他们的设备感觉非常不错附上测试结果http://www.apparitor.info/2011/05/23/fastkernel-%E8%AE%BE%E5%A4%87%E6%B5%8B%E8%AF%95/ 决定测试一下我们服务器的初始的接收窗口大小。 再次感谢刘泓昊的帮助。 分析服务器初始的接收窗口大小测试方法： 1、开一个终端监听eth0网卡的到 www.apparitor.info台机器的数据包 # tcpdump -i eth0 host www.apparitor.info 2、开另一个终端访问www.apparitor.info # curl www.apparitor.info 结果如下： # tcpdump -i eth0 host www.apparitor.info tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 11:54:42.263010 IP gaojianwei-Ubuntu.local.57285 &#62; 74-82-170-103.take2hosting.com.www: Flags [S],]]></description>
			<content:encoded><![CDATA[<p>参加了2011系统架构师大会在 “TCP协议优化在互联网行业的应用” 听到刘泓昊对TCP的优化很受启发。<br />
之前我测试过他们的设备感觉非常不错附上测试结果http://www.apparitor.info/2011/05/23/fastkernel-%E8%AE%BE%E5%A4%87%E6%B5%8B%E8%AF%95/<br />
决定测试一下我们服务器的初始的接收窗口大小。<br />
再次感谢刘泓昊的帮助。</p>
<p>分析服务器初始的接收窗口大小测试方法：<br />
1、开一个终端监听eth0网卡的到 www.apparitor.info台机器的数据包</p>
<pre># tcpdump -i eth0 host www.apparitor.info</pre>
<p>2、开另一个终端访问www.apparitor.info</p>
<pre># curl www.apparitor.info</pre>
<p><span id="more-397"></span></p>
<p>结果如下：<br />
# tcpdump -i eth0 host www.apparitor.info<br />
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode<br />
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes<br />
11:54:42.263010 IP gaojianwei-Ubuntu.local.57285 &gt; 74-82-170-103.take2hosting.com.www: Flags [S], seq 2213172551, win 14600, options [mss 1460,sackOK,TS val 4453870 ecr 0,nop,wscale 7], length 0<br />
11:54:42.463961 IP 74-82-170-103.take2hosting.com.www &gt; gaojianwei-Ubuntu.local.57285: Flags [S.], seq 2722777507, ack 2213172552, win 5792, options [mss 1448,sackOK,TS val 2627574701 ecr 4453870,nop,wscale 7], length 0<br />
11:54:42.464003 IP gaojianwei-Ubuntu.local.57285 &gt; 74-82-170-103.take2hosting.com.www: Flags [.], ack 1, win 115, options [nop,nop,TS val 4453890 ecr 2627574701], length 0<br />
11:54:42.464134 IP gaojianwei-Ubuntu.local.57285 &gt; 74-82-170-103.take2hosting.com.www: Flags [P.], seq 1:160, ack 1, win 115, options [nop,nop,TS val 4453890 ecr 2627574701], length 159<br />
11:54:42.666324 IP 74-82-170-103.take2hosting.com.www &gt; gaojianwei-Ubuntu.local.57285: Flags [.], ack 160, win 54, options [nop,nop,TS val 2627574902 ecr 4453890], length 0<br />
<span style="color: #ff0000;">11:54:43.018091 IP 74-82-170-103.take2hosting.com.www &gt; gaojianwei-Ubuntu.local.57285: Flags [P.], seq 1:488, ack 160, win 54, options [nop,nop,TS val 2627575254 ecr 4453890], length 487</span><br />
<span style="color: #ff0000;"> 11:54:43.018123 IP gaojianwei-Ubuntu.local.57285 &gt; 74-82-170-103.take2hosting.com.www: Flags [.], ack 488, win 123, options [nop,nop,TS val 4453945 ecr 2627575254], length 0</span><br />
<span style="color: #ff0000;"> 11:54:43.018140 IP 74-82-170-103.take2hosting.com.www &gt; gaojianwei-Ubuntu.local.57285: Flags [P.], seq 488:513, ack 160, win 54, options [nop,nop,TS val 2627575254 ecr 4453890], length 25</span><br />
<span style="color: #ff0000;"> 11:54:43.018149 IP gaojianwei-Ubuntu.local.57285 &gt; 74-82-170-103.take2hosting.com.www: Flags [.], ack 513, win 123, options [nop,nop,TS val 4453945 ecr 2627575254], length 0</span><br />
11:54:43.219883 IP 74-82-170-103.take2hosting.com.www &gt; gaojianwei-Ubuntu.local.57285: Flags [.], seq 513:1949, ack 160, win 54, options [nop,nop,TS val 2627575455 ecr 4453945], length 1436<br />
11:54:43.219915 IP gaojianwei-Ubuntu.local.57285 &gt; 74-82-170-103.take2hosting.com.www: Flags [.], ack 1949, win 146, options [nop,nop,TS val 4453965 ecr 2627575455], length 0<br />
11:54:43.220128 IP 74-82-170-103.take2hosting.com.www &gt; gaojianwei-Ubuntu.local.57285: Flags [.], seq 1949:3385, ack 160, win 54, options [nop,nop,TS val 2627575455 ecr 4453945], length 1436<br />
11:54:43.220135 IP gaojianwei-Ubuntu.local.57285 &gt; 74-82-170-103.take2hosting.com.www: Flags [.], ack 3385, win 168, options [nop,nop,TS val 4453965 ecr 2627575455], length 0<br />
11:54:43.220374 IP 74-82-170-103.take2hosting.com.www &gt; gaojianwei-Ubuntu.local.57285: Flags [.], seq 3385:4821, ack 160, win 54, options [nop,nop,TS val 2627575455 ecr 4453945], length 1436<br />
……</p>
<p>&nbsp;</p>
<p>分析：</p>
<p>1、从 Flags [P.], seq 1:* 开始 开头的时间43.018091 往下找跟他时间相近时间点，这个表示服务器一次开的窗口大小。（红色字体）</p>
<p>2、由上边分析发现有2个包是从服务器返回来的，说明他的窗口大小是2。</p>
<p>重点：</p>
<p>要找一个和目的IP延时比较大的点来抓包测试比较好，延时越大时间区域越明显，不要有丢包。
<div style="margin-top: 15px; font-style: italic">
<p><strong>原创文章，转载请注明：</strong> 转载自<a href="http://www.apparitor.info/">gjw_apparitor 博客</a></p>
<p><strong>本文链接地址:</strong> <a href="http://www.apparitor.info/2011/09/20/397/">通过tcpdump分析服务器初始的接收窗口大小</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.apparitor.info/2011/09/20/397/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>分析shadow文件查看密码最后修改时间</title>
		<link>http://www.apparitor.info/2011/09/19/%e5%88%86%e6%9e%90shadow%e6%96%87%e4%bb%b6%e6%9f%a5%e7%9c%8b%e5%af%86%e7%a0%81%e6%9c%80%e5%90%8e%e4%bf%ae%e6%94%b9%e6%97%b6%e9%97%b4/</link>
		<comments>http://www.apparitor.info/2011/09/19/%e5%88%86%e6%9e%90shadow%e6%96%87%e4%bb%b6%e6%9f%a5%e7%9c%8b%e5%af%86%e7%a0%81%e6%9c%80%e5%90%8e%e4%bf%ae%e6%94%b9%e6%97%b6%e9%97%b4/#comments</comments>
		<pubDate>Mon, 19 Sep 2011 06:00:14 +0000</pubDate>
		<dc:creator>gjw_apparitor</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.apparitor.info/?p=395</guid>
		<description><![CDATA[领导让统计一下谁不按照要求更改自己的密码（规定3个月改一次密码） /etc/shadow 这个文件的第三行是显示最后修改密码的时间。 写了个脚本来统计一下 awk -F':' '{print $1,$3*3600*24}' /etc/shadow &#124; while read user time; do printf "%15s 10%s \n" $user `date -d "1970-01-01 CST $time seconds" +%Y-%m-%d`; done 原创文章，转载请注明： 转载自gjw_apparitor 博客 本文链接地址: 分析shadow文件查看密码最后修改时间]]></description>
			<content:encoded><![CDATA[<p>领导让统计一下谁不按照要求更改自己的密码（规定3个月改一次密码）</p>
<p>/etc/shadow 这个文件的第三行是显示最后修改密码的时间。<br />
写了个脚本来统计一下</p>
<p><code><br />
 awk -F':' '{print $1,$3*3600*24}' /etc/shadow | while read user time; do printf "%15s 10%s \n" $user `date -d "1970-01-01 CST $time seconds" +%Y-%m-%d`; done<br />
</code>
<div style="margin-top: 15px; font-style: italic">
<p><strong>原创文章，转载请注明：</strong> 转载自<a href="http://www.apparitor.info/">gjw_apparitor 博客</a></p>
<p><strong>本文链接地址:</strong> <a href="http://www.apparitor.info/2011/09/19/%e5%88%86%e6%9e%90shadow%e6%96%87%e4%bb%b6%e6%9f%a5%e7%9c%8b%e5%af%86%e7%a0%81%e6%9c%80%e5%90%8e%e4%bf%ae%e6%94%b9%e6%97%b6%e9%97%b4/">分析shadow文件查看密码最后修改时间</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.apparitor.info/2011/09/19/%e5%88%86%e6%9e%90shadow%e6%96%87%e4%bb%b6%e6%9f%a5%e7%9c%8b%e5%af%86%e7%a0%81%e6%9c%80%e5%90%8e%e4%bf%ae%e6%94%b9%e6%97%b6%e9%97%b4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ubuntu django+apache2</title>
		<link>http://www.apparitor.info/2011/09/05/389/</link>
		<comments>http://www.apparitor.info/2011/09/05/389/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 07:34:13 +0000</pubDate>
		<dc:creator>gjw_apparitor</dc:creator>
				<category><![CDATA[Django]]></category>

		<guid isPermaLink="false">http://www.apparitor.info/2011/09/05/389/</guid>
		<description><![CDATA[1、django下载： http://www.djangoproject.com/download/ # tar xzvf Django-1.3.tar.gz # cd Django-1.3 # sudo python setup.py install 2、安装apache # sudo apt-get install apache2 # sudo apt-get install libapache2-mod-python python-sqlite 3、创建程序目录 # cd /var/www # django-amdin startproject www 4、修改配置文件 # cd /etc/apache2/sites-available/ # cp default www # a2ensite www # vi /etc/apache2/httpd.conf SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE www.settings]]></description>
			<content:encoded><![CDATA[<p>1、django下载：</p>
<p>http://www.djangoproject.com/download/</p>
<p># tar xzvf Django-1.3.tar.gz<br />
# cd Django-1.3<br />
# sudo python setup.py install</p>
<p>2、安装apache<br />
# sudo apt-get install apache2<br />
# sudo apt-get install libapache2-mod-python python-sqlite</p>
<p>3、创建程序目录<br />
# cd /var/www<br />
# django-amdin startproject www<br />
<span id="more-389"></span><br />
4、修改配置文件<br />
#  cd /etc/apache2/sites-available/<br />
# cp default www<br />
# a2ensite www<br />
# vi /etc/apache2/httpd.conf<br />
<Directory /var/www><br />
SetHandler python-program<br />
PythonHandler django.core.handlers.modpython<br />
SetEnv DJANGO_SETTINGS_MODULE www.settings<br />
PythonPath “['/var/www'] + sys.path”<br />
PythonDebug On<br />
</Directory></p>
<p># /etc/init.d/apache2 restart </p>
<p>5、测试<br />
http://127.0.0.1/www/
<div style="margin-top: 15px; font-style: italic">
<p><strong>原创文章，转载请注明：</strong> 转载自<a href="http://www.apparitor.info/">gjw_apparitor 博客</a></p>
<p><strong>本文链接地址:</strong> <a href="http://www.apparitor.info/2011/09/05/389/">ubuntu django+apache2</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.apparitor.info/2011/09/05/389/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Apache HTTP Server畸形Range选项处理远程拒绝服务漏洞</title>
		<link>http://www.apparitor.info/2011/08/30/apache-http-server%e7%95%b8%e5%bd%a2range%e9%80%89%e9%a1%b9%e5%a4%84%e7%90%86%e8%bf%9c%e7%a8%8b%e6%8b%92%e7%bb%9d%e6%9c%8d%e5%8a%a1%e6%bc%8f%e6%b4%9e/</link>
		<comments>http://www.apparitor.info/2011/08/30/apache-http-server%e7%95%b8%e5%bd%a2range%e9%80%89%e9%a1%b9%e5%a4%84%e7%90%86%e8%bf%9c%e7%a8%8b%e6%8b%92%e7%bb%9d%e6%9c%8d%e5%8a%a1%e6%bc%8f%e6%b4%9e/#comments</comments>
		<pubDate>Tue, 30 Aug 2011 05:31:49 +0000</pubDate>
		<dc:creator>gjw_apparitor</dc:creator>
				<category><![CDATA[安全]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Range]]></category>

		<guid isPermaLink="false">http://www.apparitor.info/?p=385</guid>
		<description><![CDATA[Apache HTTP Server畸形Range选项处理远程拒绝服务漏洞 详细信息：http://www.nsfocus.net/vulndb/17605 漏洞攻击工具：http://seclists.org/fulldisclosure/2011/Aug/175 需要安装perl扩展模块： # perl -MCPAN -e ‘install Parallel::ForkManager’ 原创文章，转载请注明： 转载自gjw_apparitor 博客 本文链接地址: Apache HTTP Server畸形Range选项处理远程拒绝服务漏洞]]></description>
			<content:encoded><![CDATA[<p>Apache HTTP Server畸形Range选项处理远程拒绝服务漏洞<br />
详细信息：http://www.nsfocus.net/vulndb/17605</p>
<p>漏洞攻击工具：http://seclists.org/fulldisclosure/2011/Aug/175<br />
需要安装perl扩展模块：<br />
#  perl -MCPAN -e ‘install Parallel::ForkManager’</p>
<div style="margin-top: 15px; font-style: italic">
<p><strong>原创文章，转载请注明：</strong> 转载自<a href="http://www.apparitor.info/">gjw_apparitor 博客</a></p>
<p><strong>本文链接地址:</strong> <a href="http://www.apparitor.info/2011/08/30/apache-http-server%e7%95%b8%e5%bd%a2range%e9%80%89%e9%a1%b9%e5%a4%84%e7%90%86%e8%bf%9c%e7%a8%8b%e6%8b%92%e7%bb%9d%e6%9c%8d%e5%8a%a1%e6%bc%8f%e6%b4%9e/">Apache HTTP Server畸形Range选项处理远程拒绝服务漏洞</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.apparitor.info/2011/08/30/apache-http-server%e7%95%b8%e5%bd%a2range%e9%80%89%e9%a1%b9%e5%a4%84%e7%90%86%e8%bf%9c%e7%a8%8b%e6%8b%92%e7%bb%9d%e6%9c%8d%e5%8a%a1%e6%bc%8f%e6%b4%9e/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>第四次作业—吕宇鹏—DNS安全威胁与防护(转载)</title>
		<link>http://www.apparitor.info/2011/07/20/%e7%ac%ac%e5%9b%9b%e6%ac%a1%e4%bd%9c%e4%b8%9a%e2%80%94%e5%90%95%e5%ae%87%e9%b9%8f%e2%80%94dns%e5%ae%89%e5%85%a8%e5%a8%81%e8%83%81%e4%b8%8e%e9%98%b2%e6%8a%a4%e8%bd%ac%e8%bd%bd/</link>
		<comments>http://www.apparitor.info/2011/07/20/%e7%ac%ac%e5%9b%9b%e6%ac%a1%e4%bd%9c%e4%b8%9a%e2%80%94%e5%90%95%e5%ae%87%e9%b9%8f%e2%80%94dns%e5%ae%89%e5%85%a8%e5%a8%81%e8%83%81%e4%b8%8e%e9%98%b2%e6%8a%a4%e8%bd%ac%e8%bd%bd/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 13:42:43 +0000</pubDate>
		<dc:creator>gjw_apparitor</dc:creator>
				<category><![CDATA[转载]]></category>
		<category><![CDATA[Dns]]></category>

		<guid isPermaLink="false">http://www.apparitor.info/?p=375</guid>
		<description><![CDATA[本文转自：http://course.ccert.edu.cn/2010/blog/ppoksblog/ 第四次作业—吕宇鹏—DNS安全威胁与防护 国际著名网络安全专家Roland Dobbins曾说过，域名系统就像是“空气”，平时我们感觉不到它的存在，但是一旦出现问题，其影响可能是“致命”的。近年来的“163.net域名劫持”事件、“adobe.com域名劫持”事件、“Google域名劫持”事件、“twitter域名劫持”事件、“百度域名劫持”事件以及“暴风影音断网门”都说明了域名系统安全性面临的巨大风险以及在安全性遭受到破坏时将会导致的巨大损失。那么，为什么长久以来DNS系统总是会遭受到类似域名劫持的攻击呢？本文尝试从技术角度对域名系统的安全性进行分析及建议。 本文第一部分简要介绍了域名系统（DNS）的概念和基本原理，第二部分分析了DNS系统易遭受的各种攻击。第三部分综述了目前已有的安全解决方案，第四部分进行了总结。 一、 概述 DNS系统 DNS是英文Domain Name System（域名系统）的缩写，它是一种可以将域名和IP地址相互映射的以层次结构分布的数据库系统，为互联网的运行提供关键性的基础服务。各种基于域名的Web访问，email系统、文件共享系统等都依靠DNS服务得以正常实现。DNS系统采用备份技术和缓存技术保证了数据库运行的可靠性和服务速率。 DNS服务原理 DNS系统采用递归查询请求的方式来响应用户的查询。 下面引用老师的课件插图来进行说明： 1） 用户向DNS 客户端发送DNS请求，客户端先查看本地缓存，如果缓存中有该域名，则直接返回给用户；客户端若没有域名的相关缓存，则向本地域名服务器提出解析请求。 2） 本地域名服务器在收到请求后，先查看缓存，若缓存中有相关记录，则应答客户端的请求；否则，本地域名服务器直接向根域名服务器提出请求。 3） 根域名服务器接到请求后，将包含有所需解释的域名的顶级域名服务器返回给本地域名服务器。 4） 本地域名服务器根据根域名服务器的返回结果，向顶级域名服务器发送请求。 5） 顶级域名服务器接到请求后，将包含所查询的域名的域名服务器返回给本地域名服务器。 6） 本地域名服务器根据返回结果连接包含域名的域名服务器，得到查询结果， 然后将查询结果缓存，并向客户端应答。 7） 客户端接到应答后，将查询结果缓存，然后向用户应答。 二、 安全威胁 DNS的安全威胁主要可分为几种：DNS欺骗、分布式拒绝服务攻击、DNS软件漏洞攻击、管理缺陷等。下面分别对这几类攻击进行介绍。 DNS欺骗 DNS的查询请求是基于UDP的，DNS客户端会接受首先到达的DNS应答包，而将后到达的DNS应答包当作是冗余包简单丢弃掉。客户端对DNS应答包的验证仅通过随机发送的查询ID和UDP端口号，除此之外没有任何的验证。这就给DNS欺骗提供了机会。 1、DNS ID欺骗 DNS ID欺骗中的攻击者必须跟用户处于同一个局域网内。 攻击流程： 1） Arp欺骗。欺骗者向用户发送伪造的arp应答报文，更新用户本地的arp缓存，使用户认为欺骗者为网关。这样，在用户向本地DNS服务器发送请求时，数据的流向就改为用户—欺骗者—网关—本地DNS服务器。欺骗者通过sniffer软件，嗅探到DNS请求包的ID和端口号。 2） 欺骗者利用得到的ID和端口号，优先向用户发送伪造DNS应答，用户在对ID和端口号进行核对后认为是正确的应答。此时用户访问的域名已经被替换为欺骗者伪造的IP。 3） 本地DNS服务器发送的真的DNS应答包因为晚于伪造包，用户收到后丢弃。至此，DNS ID欺骗攻击完成。 2、DNS缓存中毒 当攻击者与用户不是处于同一个局域网时，攻击者无法得到DNS请求报文的ID与端口号，“生日攻击”就是在这种情况下的对DNS缓存的一种攻击方式。 攻击流程如下： 1、 攻击者向DNS服务器发送一定数量的DNS请求包，请求的DNS选择该DNS服务器解析不了的，这样的情况下，DNS服务器会向上层DNS服务器发出相同数量的请求。 2、 攻击者快速向DNS服务器发送一定数量的伪造的DNS应答包，其中ID和端口号为随机的，当ID和端口号与正确的相碰撞时，缓存攻击成功。DNS服务器将错误的DNS解析项缓存，这样，所有DNS请求都将导向攻击者伪造的IP地址。 “生日悖论”的数学模型可以证明，一次成功的攻击所需发送伪造包的数量并不多，即是说“生日攻击”是易于发动，也易于成功的。]]></description>
			<content:encoded><![CDATA[<p>本文转自：http://course.ccert.edu.cn/2010/blog/ppoksblog/</p>
<p>第四次作业—吕宇鹏—DNS安全威胁与防护<br />
      国际著名网络安全专家Roland Dobbins曾说过，域名系统就像是“空气”，平时我们感觉不到它的存在，但是一旦出现问题，其影响可能是“致命”的。近年来的“163.net域名劫持”事件、“adobe.com域名劫持”事件、“Google域名劫持”事件、“twitter域名劫持”事件、“百度域名劫持”事件以及“暴风影音断网门”都说明了域名系统安全性面临的巨大风险以及在安全性遭受到破坏时将会导致的巨大损失。那么，为什么长久以来DNS系统总是会遭受到类似域名劫持的攻击呢？本文尝试从技术角度对域名系统的安全性进行分析及建议。<br />
      本文第一部分简要介绍了域名系统（DNS）的概念和基本原理，第二部分分析了DNS系统易遭受的各种攻击。第三部分综述了目前已有的安全解决方案，第四部分进行了总结。<br />
一、 概述<br />
DNS系统</p>
<p>DNS是英文Domain Name System（域名系统）的缩写，它是一种可以将域名和IP地址相互映射的以层次结构分布的数据库系统，为互联网的运行提供关键性的基础服务。各种基于域名的Web访问，email系统、文件共享系统等都依靠DNS服务得以正常实现。DNS系统采用备份技术和缓存技术保证了数据库运行的可靠性和服务速率。<br /><span id="more-375"></span><br />
DNS服务原理<br />
DNS系统采用递归查询请求的方式来响应用户的查询。<br />
下面引用老师的课件插图来进行说明：<br />
 <a href="http://www.apparitor.info/wp-content/uploads/2011/07/dns.jpg"><img src="http://www.apparitor.info/wp-content/uploads/2011/07/dns-300x219.jpg" alt="" title="dns" width="300" height="219" class="alignnone size-medium wp-image-377" /></a><br />
1）              用户向DNS 客户端发送DNS请求，客户端先查看本地缓存，如果缓存中有该域名，则直接返回给用户；客户端若没有域名的相关缓存，则向本地域名服务器提出解析请求。<br />
2）              本地域名服务器在收到请求后，先查看缓存，若缓存中有相关记录，则应答客户端的请求；否则，本地域名服务器直接向根域名服务器提出请求。<br />
3）              根域名服务器接到请求后，将包含有所需解释的域名的顶级域名服务器返回给本地域名服务器。<br />
4）              本地域名服务器根据根域名服务器的返回结果，向顶级域名服务器发送请求。<br />
5）              顶级域名服务器接到请求后，将包含所查询的域名的域名服务器返回给本地域名服务器。<br />
6）              本地域名服务器根据返回结果连接包含域名的域名服务器，得到查询结果，<br />
然后将查询结果缓存，并向客户端应答。<br />
7）              客户端接到应答后，将查询结果缓存，然后向用户应答。<br />
二、             安全威胁</p>
<p>DNS的安全威胁主要可分为几种：DNS欺骗、分布式拒绝服务攻击、DNS软件漏洞攻击、管理缺陷等。下面分别对这几类攻击进行介绍。<br />
DNS欺骗<br />
DNS的查询请求是基于UDP的，DNS客户端会接受首先到达的DNS应答包，而将后到达的DNS应答包当作是冗余包简单丢弃掉。客户端对DNS应答包的验证仅通过随机发送的查询ID和UDP端口号，除此之外没有任何的验证。这就给DNS欺骗提供了机会。<br />
1、DNS ID欺骗<br />
DNS ID欺骗中的攻击者必须跟用户处于同一个局域网内。</p>
<p><a href="http://www.apparitor.info/wp-content/uploads/2011/07/2.jpg"><img src="http://www.apparitor.info/wp-content/uploads/2011/07/2-300x166.jpg" alt="" title="2" width="300" height="166" class="alignnone size-medium wp-image-379" /></a></p>
<p>攻击流程：<br />
1）              Arp欺骗。欺骗者向用户发送伪造的arp应答报文，更新用户本地的arp缓存，使用户认为欺骗者为网关。这样，在用户向本地DNS服务器发送请求时，数据的流向就改为用户—欺骗者—网关—本地DNS服务器。欺骗者通过sniffer软件，嗅探到DNS请求包的ID和端口号。<br />
2）              欺骗者利用得到的ID和端口号，优先向用户发送伪造DNS应答，用户在对ID和端口号进行核对后认为是正确的应答。此时用户访问的域名已经被替换为欺骗者伪造的IP。<br />
3）              本地DNS服务器发送的真的DNS应答包因为晚于伪造包，用户收到后丢弃。至此，DNS ID欺骗攻击完成。<br />
2、DNS缓存中毒<br />
当攻击者与用户不是处于同一个局域网时，攻击者无法得到DNS请求报文的ID与端口号，“生日攻击”就是在这种情况下的对DNS缓存的一种攻击方式。<br />
攻击流程如下：<br />
1、  攻击者向DNS服务器发送一定数量的DNS请求包，请求的DNS选择该DNS服务器解析不了的，这样的情况下，DNS服务器会向上层DNS服务器发出相同数量的请求。<br />
2、  攻击者快速向DNS服务器发送一定数量的伪造的DNS应答包，其中ID和端口号为随机的，当ID和端口号与正确的相碰撞时，缓存攻击成功。DNS服务器将错误的DNS解析项缓存，这样，所有DNS请求都将导向攻击者伪造的IP地址。<br />
“生日悖论”的数学模型可以证明，一次成功的攻击所需发送伪造包的数量并不多，即是说“生日攻击”是易于发动，也易于成功的。<br />
分布式拒绝服务攻击<br />
攻击者通过控制的“僵尸网络”（成百上千的被控主机群）向目标DNS服务器发送DNS查询请求，从而导致目标DNS服务器过载以及网络线路堵塞。从而形成分布式拒绝服务攻击。<br />
著名的“暴风影音DNS攻击”事件就是分布式拒绝服务攻击的一个实例。<br />
软件漏洞攻击<br />
1、  DoS（Deny of Service）攻击<br />
利用DNS软件的漏洞，如9.2.0版本以前的BIND，向正在运行的BIND设备发送特定的DNS数据包请求，BIND会自动关闭，用户的请求将无法得到DNS服务器的任何应答，用户也将无法访问互联网，从而形成DoS攻击。<br />
2、  缓冲区溢出攻击<br />
利用DNS软件对输入的请求字符串不做做严格的检查的安全漏洞，攻击者构造特殊的数据包攻击DNS服务器，以期造成DNS软件的缓冲区溢出，在溢出成功后，通过执行特殊的代码获得高级的权限，从而得到DNS服务器的控制权。<br />
管理缺陷<br />
DNS现有的管理、配置以及安全机制的规划都非常有限，甚至还很初级。例如目前全球DNS系统仍然主要依赖多点镜像、负载均衡等方法来应对流量突发访问以及遭受DDOS攻击时保持正常运转。另外对DNS的管理和配置以及安全防护也主要依赖管理者的实际经验。<br />
三、             解决方案</p>
<p>应对上述DNS安全威胁的主要办法可总结如下：<br />
防范Arp攻击、采用UDP随机端口、建立静态IP映射、运行最新版本的BIND、限制查询、利用防火墙进行保护、利用交叉检验、使用TSIG机制、利用DNSSEC机制。<br />
下面分别做出说明。<br />
防范Arp攻击<br />
主要是针对局域网的DNS ID欺骗攻击。如上所述，DNS ID欺骗是基于Arp欺骗的，防范了Arp欺骗攻击，DNS ID欺骗攻击是无法成功实施的。<br />
采用UDP随机端口<br />
不再使用默认的53端口查询，而是在UDP端口范围内随机选择，可使对ID与端口组合的猜解难度增加6万倍，从而降低使DNS缓存攻击的成功率。<br />
建立静态IP映射<br />
         主要是指DNS服务器对少部分重要网站或经常访问的网站做静态映射表，使对这些网站的访问不再需要经过缓存或者向上一级的迭代查询，从而在机制上杜绝DNS欺骗攻击。<br />
运行最新版本的BIND<br />
         使用最新版本的BIND，可以防止已知的针对DNS软件的攻击（如DoS攻击、缓冲区溢出漏洞攻击等）。应密切关注BIND安全公告，及时打好补丁。<br />
         限制查询<br />
         在BIND8和BIND9之后，BIND的allow-query子句允许管理员对到来的查询请求使用基于IP地址的控制策略，访问控制列表可以对特定的区甚至是对该域名服务器受到的任何查询请求使用限制策略。如限制所有查询、限制特定区的查询、防止未授权的区的查询、以最少权限运行BIND等。<br />
         利用防火墙进行保护<br />
         这种保护方式可以使受保护的DNS服务器不致遭受分布式拒绝服务攻击、软件漏洞攻击。原理是在DNS服务器主机上建立一个伪DNS服务器共外部查询，而在内部系统上建立一个真实的DNS服务器专供内部使用。配置用户的内部DNS客户机，用于对内部服务器的所有查询，当内部主机访问某个网站时，仅当内部DNS服务器上没有缓存记录时，内部DNS才将查询请求发送到外部DNS服务器上，以保护内部服务器免受攻击。<br />
利用交叉检验<br />
         这种保护方式可以从一定程度上防范DNS欺骗攻击。原理是反向查询已得到的IP地址对应的主机名，用该主机名查询DNS服务器对应于该主机名的IP地址，如果一致，则请求合法，否则非法。<br />
         使用TSIG机制<br />
         TSIF（事物签名）机制（RFC2845）通过使用共享密钥（Secret Key）及单向散列函数（One-way hash function）提供信息的验证以及数据的完整性。当配置了TSIG后，DNS消息会增加一个TSIF记录选项，该选项对DNS消息进行签名，为消息发送者和接受者提供共享密钥，从而保证了传输数据不被窃取和篡改。TSIP机制的部署步骤不做赘述，相关RFC文档有详细说明。<br />
         利用DNSSEC机制<br />
         为保证客户机发送的解析请求的完整性，保护DNS服务器及其中的信息，防止入侵者冒充合法用户向他人提供虚假DNS信息，IETF（网络工程任务组）提出了DNS安全扩展（DNSSEC）的安全防范思想。<br />
1、 DNSSEC工作原理<br />
为提高DNS访问数据包的安全性，DNSSEC在兼容现有协议的基础上引入加密和认证体系，在每个区域都有一对区域级的密钥对，密钥对中的公钥对域名记录信息进行数字签名，从而使支持DNSSEC的接收者可以校验应答信息的可靠性。<br />
BIND9．0支持DNS的安全扩展功能⋯。DNSSEC引入两个全新的资源记录类型：KEY和SIG，允许客户端和域名服务器对任何DNS数据来源进行密钥验证。DNSSEC主要依靠公钥技术对于包含在DNS中的信息创建密钥签名，密钥签名通过计算出一个密钥Hash数来提供DNS中数据的完整性，并将该Hash数封装进行保护。私／公钥对中的私钥用来封装Hash数，然后可以用公钥把Hash数翻译出来。如果这个翻译出的Hash值匹配接收者计算出来的Hash数，那么表明数据是完整的、没有被篡改的。<br />
2、 DNSSEC的实施<br />
1）、创建一组密钥对<br />
#cd/vat/named<br />
#dnssec -keygen -a RSA -b 512 -n ZONE qfnu．edu．Kqfnu．edu+002+27782<br />
2）、生成密钥记录<br />
#dnssec –makekeyset -t 172802 I<qfnu．edu．+002+27782．key 3）、发送密钥文件到上一级域管理员，以供签名使用 #dnssec -signkey keyset -qfnu．edu Kedu．+002+65396．private 然后将返回qfnu．edu．signedkey文件 4）、在进行区域签名之前，必须先将密钥记录添加到区域数据文件之中 #cat“$include Kqfnn．edu．+002+27782．key”>>db．qfnu．edu<br />
5）、对区域进行签名<br />
#dnssec –signzone -O qfnu．edu db．qfnu．edu<br />
6）、修改named．conf里的zone语句，系统将会载新的区域数据文件<br />
3、 DNSSEC的不足<br />
一方面，DNSSEC安全性虽然有所提高，但是标记和校验必然产生额外的开销，从而影响网络和服务器的性能，签名的数据量很大，家中了域名服务器对骨干网以及非骨干网连接的负担，同时简明校验也对CPU造成了很大的负担，同时签名和密钥也占用了占用的磁盘空间以及RAM容量。<br />
另一方面，安全性能方面的考虑。绝大多数的DNS软件是美国出口的，它们为了通过美国政府的安全规定而被迫降低加密算法和过程的安全强度。<br />
第三方面，RSA算法的使用。RSA拥有美国专利，与某些厂商和组织倡导的“免费/开放”目标有所冲突，但是同时又别无选择。在成本方面也是部署中的一个问题。<br />
四、             总结<br />
知名IT网站TechTarget近日发布的2010年五大安全主题的展望中，DNSSEC部署动向位列第三位，DNS服务的安全性已经受到人们越来越多的关注。然而DNS系统本身的复杂性以及全球性特点给DNS系统的安全部署又带来了很多的问题，而目前已有的安全方案仍然很不成熟，部署应用中也还有很多问题没有解决，如何面对这些挑战，仍然是一个尚未解决又急需解决的难题。</p>
<p>参考文献：<br />
1、Dannie-《百度域名劫持事件百日谈》<br />
2、郭大兴，周向荣 《DNS缓存中毒攻击与防范》绿盟科技开发中心<br />
3、孔致，姜秀柱 《DNS欺骗原理及其防御方案》计算机工程 2010年2月 第36卷 第三期<br />
4、Harry’s home《从百度域名劫持事件谈DNS系统的安全问题》<br />
5、《TechTarget展望2010年五大安全主题》 中国信息安全认证中心<br />
6、《互联网域名系统安全管理的现状及研究进展》 中国信息安全认证中心<br />
7、姜春茂，黄春梅，聂福林 《基于DNS攻击的安全防范策略》陕西科技大学学报 2004年<br />
8、王启建 高仲合 《基于DNS攻击的安全分析及其防范》网络与信息安全<br />
9、王昕 王静怡 《基于DNS攻击的安全加固策略应用科技》<br />
10、张红轻，王道顺 《基于DNS缓存中毒的Webmail攻击及防护》 计算机工程 2009年2月<br />
11、乔雷 《对暴风DNS遭遇攻击导致大规模网络故障的分析》 网络安全博客<br />
06月 23, 2010 | No Comments »</p>
<div style="margin-top: 15px; font-style: italic">
<p><strong>原创文章，转载请注明：</strong> 转载自<a href="http://www.apparitor.info/">gjw_apparitor 博客</a></p>
<p><strong>本文链接地址:</strong> <a href="http://www.apparitor.info/2011/07/20/%e7%ac%ac%e5%9b%9b%e6%ac%a1%e4%bd%9c%e4%b8%9a%e2%80%94%e5%90%95%e5%ae%87%e9%b9%8f%e2%80%94dns%e5%ae%89%e5%85%a8%e5%a8%81%e8%83%81%e4%b8%8e%e9%98%b2%e6%8a%a4%e8%bd%ac%e8%bd%bd/">第四次作业—吕宇鹏—DNS安全威胁与防护(转载)</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.apparitor.info/2011/07/20/%e7%ac%ac%e5%9b%9b%e6%ac%a1%e4%bd%9c%e4%b8%9a%e2%80%94%e5%90%95%e5%ae%87%e9%b9%8f%e2%80%94dns%e5%ae%89%e5%85%a8%e5%a8%81%e8%83%81%e4%b8%8e%e9%98%b2%e6%8a%a4%e8%bd%ac%e8%bd%bd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu 11.04 Gnome 常用快捷键(转载)</title>
		<link>http://www.apparitor.info/2011/07/20/ubuntu-11-04-gnome-%e5%b8%b8%e7%94%a8%e5%bf%ab%e6%8d%b7%e9%94%ae%e8%bd%ac%e8%bd%bd/</link>
		<comments>http://www.apparitor.info/2011/07/20/ubuntu-11-04-gnome-%e5%b8%b8%e7%94%a8%e5%bf%ab%e6%8d%b7%e9%94%ae%e8%bd%ac%e8%bd%bd/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 05:29:49 +0000</pubDate>
		<dc:creator>gjw_apparitor</dc:creator>
				<category><![CDATA[转载]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.apparitor.info/?p=372</guid>
		<description><![CDATA[今天系统升级到 ubuntu 11.04了，界面变了很多有点不适应。找个快捷键先熟悉一下。 · 通用快捷键 Alt + F1 类似Windows下的Win键，在GNOME中打开”应用程序”菜单(Applications) Alt + F2 类似Windows下的Win + R组合键，在GNOME中运行应用程序 Ctrl + Alt + L 类似Windows下的Win + L 组合键，锁定桌面，不同在于同时启动屏幕保护程序 Ctrl + Alt + D组合键，显示桌面 Ctrl + Alt + → / ← 在不同工作台间切换 Ctrl + Alt + Shift + → / ← 移动当前窗口到不同工作台 · Ubuntu通用快捷键 PrintScreen 全屏抓图 Alt + PrintScreen 当前窗口抓图]]></description>
			<content:encoded><![CDATA[<p>今天系统升级到 ubuntu 11.04了，界面变了很多有点不适应。找个快捷键先熟悉一下。</p>
<p>· 通用快捷键<br />
Alt + F1 类似Windows下的Win键，在GNOME中打开”应用程序”菜单(Applications)<br />
Alt + F2 类似Windows下的Win + R组合键，在GNOME中运行应用程序<br />
Ctrl + Alt + L 类似Windows下的Win + L 组合键，锁定桌面，不同在于同时启动屏幕保护程序<br />
Ctrl + Alt + D组合键，显示桌面<br />
Ctrl + Alt + → / ← 在不同工作台间切换<br />
Ctrl + Alt + Shift + → / ← 移动当前窗口到不同工作台</p>
<p>· Ubuntu通用快捷键<br />
PrintScreen 全屏抓图<br />
Alt + PrintScreen 当前窗口抓图<br />
Ctrl+ Alt+ F1-F6 进入全屏终端<br />
Ctrl+ Alt+ F7 返回图形界面<br />
<--Ctrl+Alt+Shift+F8 未知（终端或模拟终端）<br />
Ctrl+Alt+Shift+Fn 终端N或模拟终端N(n和N为数字1－6) --><br />
<span id="more-372"></span><br />
· 窗口操作快捷键（Metacity窗口管理器）<br />
· 鼠标操作<br />
Shift + 中键 拖拽文件图标，移动菜单<br />
Alt + 左键 拖拽移动窗口<br />
Alt + Shift + 左键 拖拽移动窗口并且可以使窗口停留在边缘位置<br />
Alt + 右键 弹出窗口管理器菜单<br />
Alt + 中键 拖拽改变窗口大小</p>
<p>· 纯键盘<br />
Alt + ESC 在不同程序窗口间切换<br />
Alt + Tab 为了兼容Windows下的Alt + Tab组合键习惯，提供的第二个“在不同程序窗口间切换”<br />
Alt + F4 关闭窗口<br />
Alt + F5 取消最大化窗口 (恢复窗口原来的大小)<br />
Alt + F7 移动窗口 (注: 在窗口最大化的状态下无效)<br />
Alt + F8 改变窗口大小 (注: 在窗口最大化的状态下无效)<br />
Alt + F9 最小化窗口<br />
Alt + F10 最大化窗口<br />
Alt + Space 打开窗口的控制菜单 (点击窗口左上角图标出现的菜单)</p>
<p>· 应用程序中的常用快捷键<br />
(注: 并不适用于所有程序)<br />
Ctrl+N 新建窗口<br />
Ctrl+X 剪切<br />
Ctrl+C 复制<br />
Ctrl+V 粘贴<br />
Ctrl+Z 撤销上一步操作<br />
Ctrl+Shift+Z / Ctrl+Y 重做刚撤销的一步操作<br />
Ctrl+S 保存<br />
Ctrl+B 书签</p>
<p>· 文件浏览器（部分）<br />
Ctrl+H 显示隐藏文件（切换键）<br />
Ctrl+T 新建标签<br />
Ctrl+W 关闭标签<br />
Ctrl+Page Up 上一个标签<br />
Ctrl+Page Down 下一个标签<br />
Alt+N 切换到第N个标签（N为数字）</p>
<p>· 在Ubuntu中自定义快捷键<br />
访问“System>Preferences>Keyboard Shortcuts”，选定想要设置的项目，然后键入快捷键即可
<div style="margin-top: 15px; font-style: italic">
<p><strong>原创文章，转载请注明：</strong> 转载自<a href="http://www.apparitor.info/">gjw_apparitor 博客</a></p>
<p><strong>本文链接地址:</strong> <a href="http://www.apparitor.info/2011/07/20/ubuntu-11-04-gnome-%e5%b8%b8%e7%94%a8%e5%bf%ab%e6%8d%b7%e9%94%ae%e8%bd%ac%e8%bd%bd/">Ubuntu 11.04 Gnome 常用快捷键(转载)</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.apparitor.info/2011/07/20/ubuntu-11-04-gnome-%e5%b8%b8%e7%94%a8%e5%bf%ab%e6%8d%b7%e9%94%ae%e8%bd%ac%e8%bd%bd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>F5 的 uri hash的应用。</title>
		<link>http://www.apparitor.info/2011/07/14/f5-%e7%9a%84-uri-hash%e7%9a%84%e5%ba%94%e7%94%a8%e3%80%82/</link>
		<comments>http://www.apparitor.info/2011/07/14/f5-%e7%9a%84-uri-hash%e7%9a%84%e5%ba%94%e7%94%a8%e3%80%82/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 06:52:44 +0000</pubDate>
		<dc:creator>gjw_apparitor</dc:creator>
				<category><![CDATA[Lvs]]></category>
		<category><![CDATA[F5]]></category>

		<guid isPermaLink="false">http://www.apparitor.info/?p=370</guid>
		<description><![CDATA[参考：http://www.f5lab.cn/bbs/viewthread.php?action=printable&#038;tid=487 作者: metoo 时间: 2008-7-21 02:12 通过Election Hash，可以在URI hash分配Cache的基础上，有效的避免Cache服务器的重分布问题。 rules如下： # Election Hash iRule # Compute Hash &#8211; MD5 # Version 3.0 Dec 4th 2007 # # MD5 calculation of Server + URI # Rule selects Server that scores highest # # S = Current high score # N = Node being evaluated # W]]></description>
			<content:encoded><![CDATA[<p>参考：http://www.f5lab.cn/bbs/viewthread.php?action=printable&#038;tid=487</p>
<p>作者: metoo    时间: 2008-7-21 02:12<br />
通过Election Hash，可以在URI hash分配Cache的基础上，有效的避免Cache服务器的重分布问题。<br />
rules如下：<br />
#  Election Hash iRule<br />
#  Compute Hash &#8211; MD5<br />
# Version 3.0 Dec 4th 2007<br />
#<br />
#  MD5 calculation of Server + URI<br />
#  Rule selects Server that scores highest<br />
#<br />
# S = Current high score<br />
# N = Node being evaluated<br />
# W = Winning node<br />
#<br />
# Change “myPool” to your pool name.<br />
#</p>
<p>when HTTP_REQUEST {<br />
  set S “”<br />
  foreach N [active_members -list myPool] {<br />
    if { [md5 $N[HTTP::uri]] > $S } {<br />
      set S [md5 $N[HTTP::uri]]<br />
      set W $N<br />
    }<br />
  }<br />
  pool myPool member [lindex $W 0] [lindex $W 1]<br />
}</p>
<p>优点：避免了原来hash取模的方式，一台设备down掉所有hash表重算的问题。<br />
缺点：每条URI需要计算N次，N=活动的节点数。如果N很大非常耗费CPU资源。
<div style="margin-top: 15px; font-style: italic">
<p><strong>原创文章，转载请注明：</strong> 转载自<a href="http://www.apparitor.info/">gjw_apparitor 博客</a></p>
<p><strong>本文链接地址:</strong> <a href="http://www.apparitor.info/2011/07/14/f5-%e7%9a%84-uri-hash%e7%9a%84%e5%ba%94%e7%94%a8%e3%80%82/">F5 的 uri hash的应用。</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.apparitor.info/2011/07/14/f5-%e7%9a%84-uri-hash%e7%9a%84%e5%ba%94%e7%94%a8%e3%80%82/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nginx指定某个文件不能缓存</title>
		<link>http://www.apparitor.info/2011/07/11/nginx%e6%8c%87%e5%ae%9a%e6%9f%90%e4%b8%aa%e6%96%87%e4%bb%b6%e4%b8%8d%e8%83%bd%e7%bc%93%e5%ad%98/</link>
		<comments>http://www.apparitor.info/2011/07/11/nginx%e6%8c%87%e5%ae%9a%e6%9f%90%e4%b8%aa%e6%96%87%e4%bb%b6%e4%b8%8d%e8%83%bd%e7%bc%93%e5%ad%98/#comments</comments>
		<pubDate>Mon, 11 Jul 2011 05:12:49 +0000</pubDate>
		<dc:creator>gjw_apparitor</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://www.apparitor.info/?p=367</guid>
		<description><![CDATA[nginx配置了所有图片都缓存，想让某个图盘不被缓存用于监控使用。 一开始指定 expires 为“0“和“-1“都不好用，反回的是403不是200. 添加一个header头为no cache还是不好用，用chrome浏览器还是会显示403。 最后把no cache改为 no-store后正常。 配置为： location ~* nocache\.jpg$ { add_header Cache-Control no-store; } 原创文章，转载请注明： 转载自gjw_apparitor 博客 本文链接地址: nginx指定某个文件不能缓存]]></description>
			<content:encoded><![CDATA[<p>nginx配置了所有图片都缓存，想让某个图盘不被缓存用于监控使用。</p>
<p>一开始指定 expires 为“0“和“-1“都不好用，反回的是403不是200.<br />
添加一个header头为no cache还是不好用，用chrome浏览器还是会显示403。<br />
最后把no cache改为 no-store后正常。<br />
配置为：<br />
                location ~* nocache\.jpg$ {<br />
			add_header Cache-Control no-store;<br />
                }
<div style="margin-top: 15px; font-style: italic">
<p><strong>原创文章，转载请注明：</strong> 转载自<a href="http://www.apparitor.info/">gjw_apparitor 博客</a></p>
<p><strong>本文链接地址:</strong> <a href="http://www.apparitor.info/2011/07/11/nginx%e6%8c%87%e5%ae%9a%e6%9f%90%e4%b8%aa%e6%96%87%e4%bb%b6%e4%b8%8d%e8%83%bd%e7%bc%93%e5%ad%98/">nginx指定某个文件不能缓存</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.apparitor.info/2011/07/11/nginx%e6%8c%87%e5%ae%9a%e6%9f%90%e4%b8%aa%e6%96%87%e4%bb%b6%e4%b8%8d%e8%83%bd%e7%bc%93%e5%ad%98/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

