<?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>idv2 &#187; network</title>
	<atom:link href="http://tech.idv2.com/tag/network/feed/" rel="self" type="application/rss+xml" />
	<link>http://tech.idv2.com</link>
	<description>关注Web开发技术，关注Internet。</description>
	<lastBuildDate>Tue, 27 Jul 2010 12:54:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>OpenNMS配置笔记</title>
		<link>http://tech.idv2.com/2009/01/13/opennms-install-memo/</link>
		<comments>http://tech.idv2.com/2009/01/13/opennms-install-memo/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 16:29:44 +0000</pubDate>
		<dc:creator>charlee</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[opennms]]></category>
		<category><![CDATA[snmp]]></category>

		<guid isPermaLink="false">http://tech.idv2.com/2009/01/13/opennms-install-memo/</guid>
		<description><![CDATA[<!-- begin Pukiwiki generated code--><p><a href="http://www.opennms.org/">OpenNMS</a>是个很强大的网管软件，用它可以监视服务器的资源使用状况，
并在必要的时候向管理员发出警告。（当然它的强大功能不止这些，我就用到这个功能而已）。
安装其实也不麻烦，基本上按照<a href="http://www.opennms.org/index.php/Installation:Yum">官方文档的安装过程</a>都没问题。</p>
<p>网上流传的方法都是将OpenNMS装在Tomcat上，不过最新版的opennms-1.6.1内置了Web服务器，
所以Tomcat就不是必须的了，这样安装要方便许多。
下面这篇文章是在Redhat Liux Enterprise 4上安装的，其实RH系列的操作系统都差不多，
大家在安装时注意选择和操作系统匹配的软件包就行了。</p>
<!-- end Pukiwiki generated code--><span id="more-670"></span><!-- begin Pukiwiki generated code--><div class="contents">
<a id="contents_2"></a>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li><a href="#content_2_0">  下载</a></li>
<li><a href="#content_2_1">  安装PostgreSQL</a></li>
<li><a href="#content_2_2">  安装JDK</a></li>
<li><a href="#content_2_3">  安装OpenNMS</a></li>
<li><a href="#content_2_4">  配置OpenNMS</a></li>
<li><a href="#content_2_5">  配置被监视的服务器</a></li>
<li><a href="#content_2_6">  在OpenNMS中添加节点</a></li></ul>
</div>

<hr class="full_hr" />
<h2 id="content_2_0">下载</h2>
<p>由于局域网中不能使用yum，所以必须手动下载需要的安装包。
安装OpenNMS需要以下软件：</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>PostgreSQL：Linux自带</li>
<li>OpenNMS：从<a href="http://www.opennms.org/index.php/New_and_Noteworthy">下载页面</a> 选择binaries下载。</li>
<li>jicmp和iplike，从<a href="http://yum.opennms.org/">OpenNMS的yum页面</a>可以下载。</li>
<li>JDK，从<a href="http://java.sun.com/javase/downloads/index.jsp">Sun的下载页面</a>上下载。</li></ul>

<h2 id="content_2_1">安装PostgreSQL</h2>
<p>首先安装PostgreSQL：</p>
<pre># rpm -i postgresql-7.4.8-1.RHEL4.1.i386.rpm
# rpm -i postgresql-server-7.4.8-1.RHEL4.1.i386.rpm
# chkconfig postgresql on
# /etc/init.d/postgresql start</pre>
<p>然后要编辑配置文件 /var/lib/pgsql/data/pg_hba.cof 中权限相关的部分：</p>
<p>把下面这一行：</p>
<pre>local  all    all             ident   sameuser</pre>
<p>改成这样：</p>
<pre>local  all    all             trust
host    all         all         127.0.0.1/32          trust
host    all         all         ::1/128               trust</pre>
<p>然后需要编辑 /var/lib/pgsql/data/postgresql.conf，让它监听TCP。我用的是RHEL4的postgresql-7.4.8，
修改方法如下：</p>
<pre>#tcpip_socket = false</pre>
<p>改成</p>
<pre>tcpip_socket = true</pre>
<p>如果是较新的服务器，那应该是默认监听TCP的，如果不行，就要在 postgresql.conf 中加入这样一行：</p>
<pre>listen_addresses = 'localhost'</pre>
<p>然后重启一下服务器：</p>
<pre>/etc/init.d/postgresql restart</pre>
<p>确认一下postgresql是否启动成功：</p>
<pre># netstat -lntp
...(中略)
tcp   0   0 0.0.0.0:5432     0.0.0.0:*   LISTEN   28603/postmaster  # 有这一行即可</pre>
<p>最后要创建OpenNMS的数据库：</p>
<pre># sudo -u postgres createdb -U postgres -E UNICODE opennms
CREATE DATABASE</pre>

<h2 id="content_2_2">安装JDK</h2>
<p>我从Sun的网站上下载了rpm版的JDK 6 Update 11。安装很简单：</p>
<pre># ./jdk-6u11-linux-i586-rpm.bin</pre>

<h2 id="content_2_3">安装OpenNMS</h2>
<p>安装OpenNMS需要以下几个包：</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>opennms-1.6.1-1.noarch.rpm：为yum准备的快捷包，不装也行</li>
<li>opennms-core-1.6.1-1.noarch.rpm：OpenNMS的核心</li>
<li>opennms-docs-1.6.1-1.noarch.rpm：OpenNMS的文档</li>
<li>opennms-webapp-jetty-1.6.1-1.noarch.rpm：OpenNMS自带的Web服务器</li></ul>
<p>还有依赖关系：</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>jicmp-1.0.7-1.i386.rpm：注意这个包，不同系统上的安装包是不一样的</li>
<li>iplike-1.0.7-1.i366.rpm：注意这个包，不同系统上的安装包是不一样的</li></ul>
<p>如果你要与Tomcat配合使用，可以选择安装opennms-webapp-standalone-1.6.1-1.noarch.rpm，这里就不介绍了。</p>
<p>按照顺序分别安装以上几个包：</p>
<pre># rpm -i jicmp-1.0.7-1.i386.rpm
# rpm -i opennms-core-1.6.1-1.noarch.rpm
# rpm -i opennms-webapp-jetty-1.6.1-1.noarch.rpm
# rpm -i opennms-docs-1.6.1-1.noarch.rpm
# rpm -i opennms-1.6.1-1.noarch.rpm</pre>
<p>安装iplike：</p>
<pre># rpm -i iplike-1.0.7-1.i386.rpm</pre>
<p>安装过程中会创建存储过程，如果失败的话，可以在排除原因之后执行 /usr/sbin/install_iplike.sh 。</p>

<h2 id="content_2_4">配置OpenNMS</h2>
<p>首先设置一个环境变量，指向OpenNMS的安装位置，便于以后的输入：</p>
<pre>export OPENNMS_HOME=/opt/opennms</pre>
<p>告诉OpenNMS使用新安装的JDK。注意这一步一定要指定你上面刚刚安装的JDK。
系统中有可能自带了JRE的java解释器，那个不行，要用JDK的。</p>
<pre># $OPENNMS_HOME/bin/runjava -S /usr/java/latest/bin/java</pre>
<p>然后安装OpenNMS的数据库：</p>
<pre># $OPENNMS_HOME/bin/install -dis</pre>
<p>最后启动OpenNMS：</p>
<pre># chkconfig --add opennms
# /etc/init.d/opennms start</pre>
<p>然后打开浏览器，访问 http://&lt;your_ip_address&gt;:8980/opennms/ ，用户名admin密码admin，登录就行了。</p>

<h2 id="content_2_5">配置被监视的服务器</h2>
<p>要监视服务器的运行状态，应该在要监视的服务器上安装SNMP。如果是Linux系统，那么可以使用自带的net-snmp包。</p>
<pre># rpm -i net-snmp-libs-5.1.2-11.EL4.6.i386.rpm
# rpm -i net-snmp-5.1.2-11.EL4.6.i386.rpm
# rpm -i net-snmp-utils-5.1.2-11.EL4.6.i386.rpm
# chkconfig snmpd on
# /etc/init.d/snmpd start</pre>
<p>然后修改 /etc/snmp/snmpd.conf 。该文件主要由四个指令构成：</p>
<div class="ie5"><table class="style_table" cellspacing="1" border="0"><tbody><tr><td class="style_td">com2sec</td><td class="style_td">定义一个安全策略。community的作用类似于密码。</td></tr><tr><td class="style_td">group</td><td class="style_td">将安全策略映射到组。securityModel指SNMP版本号，可以选择v1、v2c或v3。</td></tr><tr><td class="style_td">view</td><td class="style_td">定义一个视图，规定视图中包括的内容。</td></tr><tr><td class="style_td">access</td><td class="style_td">定义哪个组可以访问哪个视图，以及访问权限。</td></tr></tbody></table></div>
<p>view中的一长串数字 .1.3.6.1.2.1.1 是MIB结点名称(OID)，由RFC1065/1155定义。
用snmptranlsate工具可以看到数字的意义：</p>
<pre># snmptranslate .1.3.6.1.2.1.1
SNMPv2-MIB::system</pre>
<p>我们可以让SNMP返回更多的信息（由于是局域网，所以就不考虑安全性问题了）。
按照以下方式修改snmpd.conf，同时注释掉原有内容：</p>
<pre>com2sec opennms   192.168.1.100/32    opennms    # 最后一个字段为community名称
group   opennmsGroup    v1           opennms
view    view_all      included   .1
access  opennmsGroup   &quot;&quot;      any       noauth    exact  view_all none none</pre>
<p>另外syslocation和syscontact指令是用来记录服务器所在物理位置和管理员联系地址的，适当填写即可。</p>
<p>最后重启SNMP：</p>
<pre># /etc/init.d/snmpd restart</pre>
<p>用snmpwalk工具检查配置是否正确，正确的话应该会输出很多信息：</p>
<pre># snmpwalk -c opennms -v 1 192.168.1.100</pre>
<p>最后将每台要监视的服务器都按照上述方法配置即可。</p>

<h2 id="content_2_6">在OpenNMS中添加节点</h2>
<p>登录到OpenNMS中，点击Admincaidan，然后点击左侧Operations中的Configure Discovery。
在Specifics表格中将要监视的服务器的IP地址填进去。如果要监视大范围的服务器，
可以在下面的Include Ranges中指定IP地址的范围。
最后点击“Save and Restart Discovery”，重新开始搜索节点。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2009/01/opennms-add-discovery.png" alt="opennms-add-discovery.png" title="opennms-add-discovery.png" width="644" height="486" /></div>

<p>稍等几分钟，再点击Node List菜单，即可看到刚刚添加的服务器。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2009/01/opennms-node-without-snmp.png" alt="opennms-node-without-snmp.png" title="opennms-node-without-snmp.png" width="624" height="423" /></div>

<p>但是现在在服务器状态中还看不到SNMP信息，因为我们还没设置SNMP的community名称——
刚才说过，community名称相当于密码。</p>
<p>点击Admin菜单，然后选择左侧的Configure SNMP Community Names by IP命令。
然后输入IP地址，以及刚才在snmpd.conf中使用的community名称，
版本号也要与snmpd.conf的group指令中设置的一致，最后点击Submit。</p>
<p>接下来回到Node List，进入要监视的服务器的状态页面，点击上方菜单中的Rescan。
等待一分钟左右再刷新页面，就可以看到SNMP状态信息了。（由于有了SNMP的帮助，
你会发现状态页面的信息一下子多了许多。）</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2009/01/opennms-node-with-snmp.png" alt="opennms-node-with-snmp.png" title="opennms-node-with-snmp.png" width="629" height="460" /></div>

<p>这样，我们可以通过点击上方的Resource Graphs即可看到服务器运行状态的图表。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2009/01/opennms-memory-stats.png" alt="opennms-memory-stats.png" title="opennms-memory-stats.png" width="656" height="351" /></div>

<!-- end Pukiwiki generated code-->
]]></description>
			<content:encoded><![CDATA[<!-- begin Pukiwiki generated code--><p><a href="http://www.opennms.org/">OpenNMS</a>是个很强大的网管软件，用它可以监视服务器的资源使用状况，
并在必要的时候向管理员发出警告。（当然它的强大功能不止这些，我就用到这个功能而已）。
安装其实也不麻烦，基本上按照<a href="http://www.opennms.org/index.php/Installation:Yum">官方文档的安装过程</a>都没问题。</p>
<p>网上流传的方法都是将OpenNMS装在Tomcat上，不过最新版的opennms-1.6.1内置了Web服务器，
所以Tomcat就不是必须的了，这样安装要方便许多。
下面这篇文章是在Redhat Liux Enterprise 4上安装的，其实RH系列的操作系统都差不多，
大家在安装时注意选择和操作系统匹配的软件包就行了。</p>
<!-- end Pukiwiki generated code--><span id="more-670"></span><!-- begin Pukiwiki generated code--><div class="contents">
<a id="contents_4"></a>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li><a href="#content_4_0">  下载</a></li>
<li><a href="#content_4_1">  安装PostgreSQL</a></li>
<li><a href="#content_4_2">  安装JDK</a></li>
<li><a href="#content_4_3">  安装OpenNMS</a></li>
<li><a href="#content_4_4">  配置OpenNMS</a></li>
<li><a href="#content_4_5">  配置被监视的服务器</a></li>
<li><a href="#content_4_6">  在OpenNMS中添加节点</a></li></ul>
</div>

<hr class="full_hr" />
<h2 id="content_4_0">下载</h2>
<p>由于局域网中不能使用yum，所以必须手动下载需要的安装包。
安装OpenNMS需要以下软件：</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>PostgreSQL：Linux自带</li>
<li>OpenNMS：从<a href="http://www.opennms.org/index.php/New_and_Noteworthy">下载页面</a> 选择binaries下载。</li>
<li>jicmp和iplike，从<a href="http://yum.opennms.org/">OpenNMS的yum页面</a>可以下载。</li>
<li>JDK，从<a href="http://java.sun.com/javase/downloads/index.jsp">Sun的下载页面</a>上下载。</li></ul>

<h2 id="content_4_1">安装PostgreSQL</h2>
<p>首先安装PostgreSQL：</p>
<pre># rpm -i postgresql-7.4.8-1.RHEL4.1.i386.rpm
# rpm -i postgresql-server-7.4.8-1.RHEL4.1.i386.rpm
# chkconfig postgresql on
# /etc/init.d/postgresql start</pre>
<p>然后要编辑配置文件 /var/lib/pgsql/data/pg_hba.cof 中权限相关的部分：</p>
<p>把下面这一行：</p>
<pre>local  all    all             ident   sameuser</pre>
<p>改成这样：</p>
<pre>local  all    all             trust
host    all         all         127.0.0.1/32          trust
host    all         all         ::1/128               trust</pre>
<p>然后需要编辑 /var/lib/pgsql/data/postgresql.conf，让它监听TCP。我用的是RHEL4的postgresql-7.4.8，
修改方法如下：</p>
<pre>#tcpip_socket = false</pre>
<p>改成</p>
<pre>tcpip_socket = true</pre>
<p>如果是较新的服务器，那应该是默认监听TCP的，如果不行，就要在 postgresql.conf 中加入这样一行：</p>
<pre>listen_addresses = 'localhost'</pre>
<p>然后重启一下服务器：</p>
<pre>/etc/init.d/postgresql restart</pre>
<p>确认一下postgresql是否启动成功：</p>
<pre># netstat -lntp
...(中略)
tcp   0   0 0.0.0.0:5432     0.0.0.0:*   LISTEN   28603/postmaster  # 有这一行即可</pre>
<p>最后要创建OpenNMS的数据库：</p>
<pre># sudo -u postgres createdb -U postgres -E UNICODE opennms
CREATE DATABASE</pre>

<h2 id="content_4_2">安装JDK</h2>
<p>我从Sun的网站上下载了rpm版的JDK 6 Update 11。安装很简单：</p>
<pre># ./jdk-6u11-linux-i586-rpm.bin</pre>

<h2 id="content_4_3">安装OpenNMS</h2>
<p>安装OpenNMS需要以下几个包：</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>opennms-1.6.1-1.noarch.rpm：为yum准备的快捷包，不装也行</li>
<li>opennms-core-1.6.1-1.noarch.rpm：OpenNMS的核心</li>
<li>opennms-docs-1.6.1-1.noarch.rpm：OpenNMS的文档</li>
<li>opennms-webapp-jetty-1.6.1-1.noarch.rpm：OpenNMS自带的Web服务器</li></ul>
<p>还有依赖关系：</p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li>jicmp-1.0.7-1.i386.rpm：注意这个包，不同系统上的安装包是不一样的</li>
<li>iplike-1.0.7-1.i366.rpm：注意这个包，不同系统上的安装包是不一样的</li></ul>
<p>如果你要与Tomcat配合使用，可以选择安装opennms-webapp-standalone-1.6.1-1.noarch.rpm，这里就不介绍了。</p>
<p>按照顺序分别安装以上几个包：</p>
<pre># rpm -i jicmp-1.0.7-1.i386.rpm
# rpm -i opennms-core-1.6.1-1.noarch.rpm
# rpm -i opennms-webapp-jetty-1.6.1-1.noarch.rpm
# rpm -i opennms-docs-1.6.1-1.noarch.rpm
# rpm -i opennms-1.6.1-1.noarch.rpm</pre>
<p>安装iplike：</p>
<pre># rpm -i iplike-1.0.7-1.i386.rpm</pre>
<p>安装过程中会创建存储过程，如果失败的话，可以在排除原因之后执行 /usr/sbin/install_iplike.sh 。</p>

<h2 id="content_4_4">配置OpenNMS</h2>
<p>首先设置一个环境变量，指向OpenNMS的安装位置，便于以后的输入：</p>
<pre>export OPENNMS_HOME=/opt/opennms</pre>
<p>告诉OpenNMS使用新安装的JDK。注意这一步一定要指定你上面刚刚安装的JDK。
系统中有可能自带了JRE的java解释器，那个不行，要用JDK的。</p>
<pre># $OPENNMS_HOME/bin/runjava -S /usr/java/latest/bin/java</pre>
<p>然后安装OpenNMS的数据库：</p>
<pre># $OPENNMS_HOME/bin/install -dis</pre>
<p>最后启动OpenNMS：</p>
<pre># chkconfig --add opennms
# /etc/init.d/opennms start</pre>
<p>然后打开浏览器，访问 http://&lt;your_ip_address&gt;:8980/opennms/ ，用户名admin密码admin，登录就行了。</p>

<h2 id="content_4_5">配置被监视的服务器</h2>
<p>要监视服务器的运行状态，应该在要监视的服务器上安装SNMP。如果是Linux系统，那么可以使用自带的net-snmp包。</p>
<pre># rpm -i net-snmp-libs-5.1.2-11.EL4.6.i386.rpm
# rpm -i net-snmp-5.1.2-11.EL4.6.i386.rpm
# rpm -i net-snmp-utils-5.1.2-11.EL4.6.i386.rpm
# chkconfig snmpd on
# /etc/init.d/snmpd start</pre>
<p>然后修改 /etc/snmp/snmpd.conf 。该文件主要由四个指令构成：</p>
<div class="ie5"><table class="style_table" cellspacing="1" border="0"><tbody><tr><td class="style_td">com2sec</td><td class="style_td">定义一个安全策略。community的作用类似于密码。</td></tr><tr><td class="style_td">group</td><td class="style_td">将安全策略映射到组。securityModel指SNMP版本号，可以选择v1、v2c或v3。</td></tr><tr><td class="style_td">view</td><td class="style_td">定义一个视图，规定视图中包括的内容。</td></tr><tr><td class="style_td">access</td><td class="style_td">定义哪个组可以访问哪个视图，以及访问权限。</td></tr></tbody></table></div>
<p>view中的一长串数字 .1.3.6.1.2.1.1 是MIB结点名称(OID)，由RFC1065/1155定义。
用snmptranlsate工具可以看到数字的意义：</p>
<pre># snmptranslate .1.3.6.1.2.1.1
SNMPv2-MIB::system</pre>
<p>我们可以让SNMP返回更多的信息（由于是局域网，所以就不考虑安全性问题了）。
按照以下方式修改snmpd.conf，同时注释掉原有内容：</p>
<pre>com2sec opennms   192.168.1.100/32    opennms    # 最后一个字段为community名称
group   opennmsGroup    v1           opennms
view    view_all      included   .1
access  opennmsGroup   &quot;&quot;      any       noauth    exact  view_all none none</pre>
<p>另外syslocation和syscontact指令是用来记录服务器所在物理位置和管理员联系地址的，适当填写即可。</p>
<p>最后重启SNMP：</p>
<pre># /etc/init.d/snmpd restart</pre>
<p>用snmpwalk工具检查配置是否正确，正确的话应该会输出很多信息：</p>
<pre># snmpwalk -c opennms -v 1 192.168.1.100</pre>
<p>最后将每台要监视的服务器都按照上述方法配置即可。</p>

<h2 id="content_4_6">在OpenNMS中添加节点</h2>
<p>登录到OpenNMS中，点击Admincaidan，然后点击左侧Operations中的Configure Discovery。
在Specifics表格中将要监视的服务器的IP地址填进去。如果要监视大范围的服务器，
可以在下面的Include Ranges中指定IP地址的范围。
最后点击“Save and Restart Discovery”，重新开始搜索节点。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2009/01/opennms-add-discovery.png" alt="opennms-add-discovery.png" title="opennms-add-discovery.png" width="644" height="486" /></div>

<p>稍等几分钟，再点击Node List菜单，即可看到刚刚添加的服务器。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2009/01/opennms-node-without-snmp.png" alt="opennms-node-without-snmp.png" title="opennms-node-without-snmp.png" width="624" height="423" /></div>

<p>但是现在在服务器状态中还看不到SNMP信息，因为我们还没设置SNMP的community名称——
刚才说过，community名称相当于密码。</p>
<p>点击Admin菜单，然后选择左侧的Configure SNMP Community Names by IP命令。
然后输入IP地址，以及刚才在snmpd.conf中使用的community名称，
版本号也要与snmpd.conf的group指令中设置的一致，最后点击Submit。</p>
<p>接下来回到Node List，进入要监视的服务器的状态页面，点击上方菜单中的Rescan。
等待一分钟左右再刷新页面，就可以看到SNMP状态信息了。（由于有了SNMP的帮助，
你会发现状态页面的信息一下子多了许多。）</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2009/01/opennms-node-with-snmp.png" alt="opennms-node-with-snmp.png" title="opennms-node-with-snmp.png" width="629" height="460" /></div>

<p>这样，我们可以通过点击上方的Resource Graphs即可看到服务器运行状态的图表。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2009/01/opennms-memory-stats.png" alt="opennms-memory-stats.png" title="opennms-memory-stats.png" width="656" height="351" /></div>

<!-- end Pukiwiki generated code-->
]]></content:encoded>
			<wfw:commentRss>http://tech.idv2.com/2009/01/13/opennms-install-memo/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Web通信分析工具</title>
		<link>http://tech.idv2.com/2008/12/30/web-comm-analyzer/</link>
		<comments>http://tech.idv2.com/2008/12/30/web-comm-analyzer/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 15:03:34 +0000</pubDate>
		<dc:creator>charlee</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[network]]></category>

		<guid isPermaLink="false">http://tech.idv2.com/2008/12/30/web-comm-analyzer/</guid>
		<description><![CDATA[<!-- begin Pukiwiki generated code--><p>在抓虾上看到一篇Web开发分析工具的文章（链接就免了），怎么远没有我用的东西好用呢？
还是介绍介绍我用的吧。由于平常开发只用FireFox，完成后再去调试IE，
所以这些工具绝大部分是针对FireFox的。</p>
<p>如果把Web通信从上到下分为许多层——XMLHttpRequest层，HTTP层，TCP层，
那么这些工具可以分别抓取每个层的通信数据进行分析，结合使用极其强大。</p>
<p><strong>2008/12/31</strong>：另外可以参考daniel同学的<a href="http://hi.baidu.com/dearhwj/blog/item/c36283a738774d92d14358f7.html">Web开发常用工具</a>一文，相信会大有帮助哦。</p>
<!-- end Pukiwiki generated code--><span id="more-662"></span><!-- begin Pukiwiki generated code--><h2 id="content_6_0">XMLHttpRequest层：Firebug</h2>
<div class="ie5"><table class="style_table" cellspacing="1" border="0"><tbody><tr><td class="style_td">适用范围</td><td class="style_td">Ajax应用程序</td></tr><tr><td class="style_td">优点</td><td class="style_td">使用方便，数据截取完整</td></tr><tr><td class="style_td">缺点</td><td class="style_td">只能分析XMLHttpRequest请求，其他类型的请求无能为力</td></tr></tbody></table></div>
<p><a href="https://addons.mozilla.org/firefox/addon/1843">Firebug</a>应该是尽人皆知了。
它的控制台能监视XMLHttpRequest请求，能看到完整的请求和应答的数据。
用它来调试Ajax程序是最好不过了。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2008/12/firebug.png" alt="firebug.png" title="firebug.png" width="530" height="243" /></div>


<h2 id="content_6_1">HTTP层：Tamper Data</h2>
<div class="ie5"><table class="style_table" cellspacing="1" border="0"><tbody><tr><td class="style_td">适用范围</td><td class="style_td">普通网页，Ajax应用程序，Flash</td></tr><tr><td class="style_td">优点</td><td class="style_td">使用方便，适用范围广，任何HTTP请求都能截获</td></tr><tr><td class="style_td">缺点</td><td class="style_td">只能截获请求头、请求内容、应答头，得不到应答内容；涉及文件下载时效率大幅度降低</td></tr></tbody></table></div>
<p><a href="https://addons.mozilla.org/firefox/addon/966">Tamper Data</a>比Firebug进了一步，
只要是HTTP请求，它都能抓下来，可惜的是看不到应答内容。
适用于分析请求流程、请求参数、请求数据、重定向URL。
对于非Ajax程序如普通网页、Flash、ActiveX等程序，用Tamper Data来分析十分方便。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2008/12/tamperdata.png" alt="tamperdata.png" title="tamperdata.png" width="617" height="490" /></div>


<h2 id="content_6_2">HTTP层：burpsuite</h2>
<div class="ie5"><table class="style_table" cellspacing="1" border="0"><tbody><tr><td class="style_td">适用范围</td><td class="style_td">普通网页，Ajax应用程序，Flash</td></tr><tr><td class="style_td">优点</td><td class="style_td">适用范围广，截取数据完整，不挑网卡</td></tr><tr><td class="style_td">缺点</td><td class="style_td">使用稍稍麻烦</td></tr></tbody></table></div>
<p><a href="http://portswigger.net/suite/">burpsuite</a>中的proxy功能用于分析Web通信十分好用。
它的原理是架设一个代理服务器，让浏览器通过代理来发送请求，代理就可以截获数据了。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2008/12/burpsuite.png" alt="burpsuite.png" title="burpsuite.png" width="543" height="722" /></div>

<p>使用方法为：</p>
<ol class="list1" style="padding-left:16px;margin-left:16px"><li>配置proxy，然后设置浏览器使用它的proxy</li>
<li>访问想要抓取的那个网页</li>
<li>burp suite的proxy中就会看到请求内容，在这里即可详细地分析请求。</li>
<li>如果想继续分析应答，可以右键点击请求内容，选send to repeater</li>
<li>切换到repeater标签，点【go】按钮发送请求，在下方就可以看到应答</li></ol>

<h2 id="content_6_3">TCP层：wireshark</h2>
<div class="ie5"><table class="style_table" cellspacing="1" border="0"><tbody><tr><td class="style_td">适用范围</td><td class="style_td">任何网络程序</td></tr><tr><td class="style_td">优点</td><td class="style_td">适用范围广，截取数据完整</td></tr><tr><td class="style_td">缺点</td><td class="style_td">使用麻烦；不能使用loopback网卡</td></tr></tbody></table></div>
<p>如果以上方法都不管用，就要祭出终极武器<a href="http://www.wireshark.org/">wireshark</a>（原名ethereal）了。
它从网络的最底层入手，可以截获任何类型的网络通信，而不仅仅是HTTP协议。
比如要开发一个邮件程序，需要分析服务器端脚本与POP3服务器之间的通信，
那就非得wireshark出马不可了。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2008/12/wireshark.png" alt="wireshark.png" title="wireshark.png" width="550" height="408" /></div>

<p>使用方法：</p>
<ol class="list1" style="padding-left:16px;margin-left:16px"><li>在wireshark中选择抓取物理网卡；</li>
<li>让应用程序发请求；</li>
<li>在wireshark中停止抓取；</li>
<li>从抓到的包一览中找出刚才应用程序发出的请求，右键点击选择 Follow TCP Stream，就能看到该请求的完整内容。</li></ol>
<p>这个工具的不足之处是它不能抓取loopback的网卡，也就是说，
如果你的程序连接的是位于localhost或127.0.0.1的服务器，
那wireshark是抓不到的。解决方法是，让程序通过真实物理网卡去连别的机器，
或是使用虚拟机的虚拟网卡也行。</p>
<!-- end Pukiwiki generated code-->
]]></description>
			<content:encoded><![CDATA[<!-- begin Pukiwiki generated code--><p>在抓虾上看到一篇Web开发分析工具的文章（链接就免了），怎么远没有我用的东西好用呢？
还是介绍介绍我用的吧。由于平常开发只用FireFox，完成后再去调试IE，
所以这些工具绝大部分是针对FireFox的。</p>
<p>如果把Web通信从上到下分为许多层——XMLHttpRequest层，HTTP层，TCP层，
那么这些工具可以分别抓取每个层的通信数据进行分析，结合使用极其强大。</p>
<p><strong>2008/12/31</strong>：另外可以参考daniel同学的<a href="http://hi.baidu.com/dearhwj/blog/item/c36283a738774d92d14358f7.html">Web开发常用工具</a>一文，相信会大有帮助哦。</p>
<!-- end Pukiwiki generated code--><span id="more-662"></span><!-- begin Pukiwiki generated code--><h2 id="content_8_0">XMLHttpRequest层：Firebug</h2>
<div class="ie5"><table class="style_table" cellspacing="1" border="0"><tbody><tr><td class="style_td">适用范围</td><td class="style_td">Ajax应用程序</td></tr><tr><td class="style_td">优点</td><td class="style_td">使用方便，数据截取完整</td></tr><tr><td class="style_td">缺点</td><td class="style_td">只能分析XMLHttpRequest请求，其他类型的请求无能为力</td></tr></tbody></table></div>
<p><a href="https://addons.mozilla.org/firefox/addon/1843">Firebug</a>应该是尽人皆知了。
它的控制台能监视XMLHttpRequest请求，能看到完整的请求和应答的数据。
用它来调试Ajax程序是最好不过了。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2008/12/firebug.png" alt="firebug.png" title="firebug.png" width="530" height="243" /></div>


<h2 id="content_8_1">HTTP层：Tamper Data</h2>
<div class="ie5"><table class="style_table" cellspacing="1" border="0"><tbody><tr><td class="style_td">适用范围</td><td class="style_td">普通网页，Ajax应用程序，Flash</td></tr><tr><td class="style_td">优点</td><td class="style_td">使用方便，适用范围广，任何HTTP请求都能截获</td></tr><tr><td class="style_td">缺点</td><td class="style_td">只能截获请求头、请求内容、应答头，得不到应答内容；涉及文件下载时效率大幅度降低</td></tr></tbody></table></div>
<p><a href="https://addons.mozilla.org/firefox/addon/966">Tamper Data</a>比Firebug进了一步，
只要是HTTP请求，它都能抓下来，可惜的是看不到应答内容。
适用于分析请求流程、请求参数、请求数据、重定向URL。
对于非Ajax程序如普通网页、Flash、ActiveX等程序，用Tamper Data来分析十分方便。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2008/12/tamperdata.png" alt="tamperdata.png" title="tamperdata.png" width="617" height="490" /></div>


<h2 id="content_8_2">HTTP层：burpsuite</h2>
<div class="ie5"><table class="style_table" cellspacing="1" border="0"><tbody><tr><td class="style_td">适用范围</td><td class="style_td">普通网页，Ajax应用程序，Flash</td></tr><tr><td class="style_td">优点</td><td class="style_td">适用范围广，截取数据完整，不挑网卡</td></tr><tr><td class="style_td">缺点</td><td class="style_td">使用稍稍麻烦</td></tr></tbody></table></div>
<p><a href="http://portswigger.net/suite/">burpsuite</a>中的proxy功能用于分析Web通信十分好用。
它的原理是架设一个代理服务器，让浏览器通过代理来发送请求，代理就可以截获数据了。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2008/12/burpsuite.png" alt="burpsuite.png" title="burpsuite.png" width="543" height="722" /></div>

<p>使用方法为：</p>
<ol class="list1" style="padding-left:16px;margin-left:16px"><li>配置proxy，然后设置浏览器使用它的proxy</li>
<li>访问想要抓取的那个网页</li>
<li>burp suite的proxy中就会看到请求内容，在这里即可详细地分析请求。</li>
<li>如果想继续分析应答，可以右键点击请求内容，选send to repeater</li>
<li>切换到repeater标签，点【go】按钮发送请求，在下方就可以看到应答</li></ol>

<h2 id="content_8_3">TCP层：wireshark</h2>
<div class="ie5"><table class="style_table" cellspacing="1" border="0"><tbody><tr><td class="style_td">适用范围</td><td class="style_td">任何网络程序</td></tr><tr><td class="style_td">优点</td><td class="style_td">适用范围广，截取数据完整</td></tr><tr><td class="style_td">缺点</td><td class="style_td">使用麻烦；不能使用loopback网卡</td></tr></tbody></table></div>
<p>如果以上方法都不管用，就要祭出终极武器<a href="http://www.wireshark.org/">wireshark</a>（原名ethereal）了。
它从网络的最底层入手，可以截获任何类型的网络通信，而不仅仅是HTTP协议。
比如要开发一个邮件程序，需要分析服务器端脚本与POP3服务器之间的通信，
那就非得wireshark出马不可了。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2008/12/wireshark.png" alt="wireshark.png" title="wireshark.png" width="550" height="408" /></div>

<p>使用方法：</p>
<ol class="list1" style="padding-left:16px;margin-left:16px"><li>在wireshark中选择抓取物理网卡；</li>
<li>让应用程序发请求；</li>
<li>在wireshark中停止抓取；</li>
<li>从抓到的包一览中找出刚才应用程序发出的请求，右键点击选择 Follow TCP Stream，就能看到该请求的完整内容。</li></ol>
<p>这个工具的不足之处是它不能抓取loopback的网卡，也就是说，
如果你的程序连接的是位于localhost或127.0.0.1的服务器，
那wireshark是抓不到的。解决方法是，让程序通过真实物理网卡去连别的机器，
或是使用虚拟机的虚拟网卡也行。</p>
<!-- end Pukiwiki generated code-->
]]></content:encoded>
			<wfw:commentRss>http://tech.idv2.com/2008/12/30/web-comm-analyzer/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>APS: 代理认证的好帮手</title>
		<link>http://tech.idv2.com/2007/03/23/aps-proxy-auth-helper/</link>
		<comments>http://tech.idv2.com/2007/03/23/aps-proxy-auth-helper/#comments</comments>
		<pubDate>Fri, 23 Mar 2007 13:30:38 +0000</pubDate>
		<dc:creator>charlee</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[proxy]]></category>

		<guid isPermaLink="false">http://tech.inspiremedia.org/archives/354.html</guid>
		<description><![CDATA[<!-- begin Pukiwiki generated code--><p>最近公司启用了域，并且代理服务器加上了NTLM认证，只有加入域的电脑才能够使用。
这样一来，虽然IE和Firefox能够正常通过代理上网，但是像FlashGet等不支持NTLM代理认证的
下载工具就没法使用了。</p>
<p>不过今天发现了<a href="http://ntlmaps.sourceforge.net/">APS</a>这个工具，它能够帮你进行NTLM代理认证，
使得不支持NTLM认证的工具也能正常使用代理。其方法就是在本地机器上再架设一个不需要认证的代理，
FlashGet使用这个代理上网，而APS接收到FlashGet的请求之后，将其加上认证信息，再转发给
真正的代理服务器。</p>
<p>目前最新版为 0.9.9.0.1，下载最新版解压缩即可。它用python写成，需要先安装<a href="http://www.python.org/">Python</a>才能正常使用，
推荐使用2.4以上版本。</p>
<p>解压之后修改里面的server.cfg文件，进行以下设置。</p>
<pre># 本地代理的监听端口
LISTEN_PORT:5865

# 实际的代理地址
PARENT_PROXY:172.28.14.3

# 实际的代理端口
PARENT_PROXY_PORT:8080

# 你的机器在域上的机器名
NT_HOSTNAME:&lt;机器名&gt;

# 你的机器加入的域的名称
NT_DOMAIN:&lt;域名称&gt;

# 域用户名
USER:&lt;用户名&gt;

# 域密码
PASSWORD:&lt;密码&gt;</pre>
<p>之后打开runserver.bat，修改其中的python路径指向正确的python解释器即可。</p>
<p>运行runserver.bat，APS即在本机的5865端口架设一个代理，然后令FlashGet使用127.0.0.1:5865作为代理即可正常使用。</p>
<!-- end Pukiwiki generated code-->
]]></description>
			<content:encoded><![CDATA[<!-- begin Pukiwiki generated code--><p>最近公司启用了域，并且代理服务器加上了NTLM认证，只有加入域的电脑才能够使用。
这样一来，虽然IE和Firefox能够正常通过代理上网，但是像FlashGet等不支持NTLM代理认证的
下载工具就没法使用了。</p>
<p>不过今天发现了<a href="http://ntlmaps.sourceforge.net/">APS</a>这个工具，它能够帮你进行NTLM代理认证，
使得不支持NTLM认证的工具也能正常使用代理。其方法就是在本地机器上再架设一个不需要认证的代理，
FlashGet使用这个代理上网，而APS接收到FlashGet的请求之后，将其加上认证信息，再转发给
真正的代理服务器。</p>
<p>目前最新版为 0.9.9.0.1，下载最新版解压缩即可。它用python写成，需要先安装<a href="http://www.python.org/">Python</a>才能正常使用，
推荐使用2.4以上版本。</p>
<p>解压之后修改里面的server.cfg文件，进行以下设置。</p>
<pre># 本地代理的监听端口
LISTEN_PORT:5865

# 实际的代理地址
PARENT_PROXY:172.28.14.3

# 实际的代理端口
PARENT_PROXY_PORT:8080

# 你的机器在域上的机器名
NT_HOSTNAME:&lt;机器名&gt;

# 你的机器加入的域的名称
NT_DOMAIN:&lt;域名称&gt;

# 域用户名
USER:&lt;用户名&gt;

# 域密码
PASSWORD:&lt;密码&gt;</pre>
<p>之后打开runserver.bat，修改其中的python路径指向正确的python解释器即可。</p>
<p>运行runserver.bat，APS即在本机的5865端口架设一个代理，然后令FlashGet使用127.0.0.1:5865作为代理即可正常使用。</p>
<!-- end Pukiwiki generated code-->
]]></content:encoded>
			<wfw:commentRss>http://tech.idv2.com/2007/03/23/aps-proxy-auth-helper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Burp Suite: 网站攻击利器</title>
		<link>http://tech.idv2.com/2006/08/31/burp-suite/</link>
		<comments>http://tech.idv2.com/2006/08/31/burp-suite/#comments</comments>
		<pubDate>Thu, 31 Aug 2006 06:26:54 +0000</pubDate>
		<dc:creator>charlee</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[hacker]]></category>
		<category><![CDATA[network]]></category>

		<guid isPermaLink="false">http://charlee.itbdns.com/tech/archive/115.html</guid>
		<description><![CDATA[<!-- begin Pukiwiki generated code--><p>Burp Suite是一个免费的网站攻击工具。它包括proxy、spider、intruder、repeater四项功能。该程序使用Java写成，需要 JRE 1.4 以上版本。可以在 <a href="http://portswigger.net/suite/">http://portswigger.net/suite/</a> 下载，目前最新版本为 1.0.1。</p>
<p>解压之后执行 suite.bat，片刻之后即可启动。</p>
<!-- end Pukiwiki generated code--><span id="more-95"></span><!-- begin Pukiwiki generated code--><div class="contents">
<a id="contents_12"></a>
<ul class="list2" style="padding-left:16px;margin-left:16px"><li><a href="#content_12_0">  proxy</a></li>
<li><a href="#content_12_1">  spider</a></li>
<li><a href="#content_12_2">  intruder</a></li>
<li><a href="#content_12_3">  repeater</a></li></ul>
</div>

<hr class="full_hr" />
<h3 id="content_12_0">proxy</h3>
<p>在本地架设代理服务器以截获并修改浏览器发出的请求。默认设置为 127.0.0.1:8080。使用时只要将浏览器的代理服务器设置为 127.0.0.1:8080，burp proxy就会截获到浏览器发出的请求，并可方便地进行修改之后再向原网站发出，以达到篡改cookie、URL、form等目的。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2006/09/burp_suite_proxy_01.png" alt="burp_suite_proxy_01.png" title="burp_suite_proxy_01.png" width="540" height="324" /></div>

<p>将浏览器的代理服务器设置为 localhost:8080，然后访问任意一个网站。burp proxy即可截获到该请求。你可以方便地编辑该请求的内容，然后按Forward按钮将编辑之后的请求发到原网站；或者按Drop按钮丢弃该请求。</p>

<h3 id="content_12_1">spider</h3>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2006/09/burp_suite_spider_01.png" alt="burp_suite_spider_01.png" title="burp_suite_spider_01.png" width="540" height="383" /></div>


<h3 id="content_12_2">intruder</h3>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2006/09/burp_suite_intruder_01.png" alt="burp_suite_intruder_01.png" title="burp_suite_intruder_01.png" width="490" height="294" /></div>


<h3 id="content_12_3">repeater</h3>
<p>burp repeater可以将同样的请求多次发送。你可以不断地修改请求的各种参数并发送，以寻找最好的攻击方法。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2006/09/burp_suite_repeater_01.png" alt="burp_suite_repeater_01.png" title="burp_suite_repeater_01.png" width="535" height="404" /></div>

<!-- end Pukiwiki generated code-->
]]></description>
			<content:encoded><![CDATA[<!-- begin Pukiwiki generated code--><p>Burp Suite是一个免费的网站攻击工具。它包括proxy、spider、intruder、repeater四项功能。该程序使用Java写成，需要 JRE 1.4 以上版本。可以在 <a href="http://portswigger.net/suite/">http://portswigger.net/suite/</a> 下载，目前最新版本为 1.0.1。</p>
<p>解压之后执行 suite.bat，片刻之后即可启动。</p>
<!-- end Pukiwiki generated code--><span id="more-95"></span><!-- begin Pukiwiki generated code--><div class="contents">
<a id="contents_14"></a>
<ul class="list2" style="padding-left:16px;margin-left:16px"><li><a href="#content_14_0">  proxy</a></li>
<li><a href="#content_14_1">  spider</a></li>
<li><a href="#content_14_2">  intruder</a></li>
<li><a href="#content_14_3">  repeater</a></li></ul>
</div>

<hr class="full_hr" />
<h3 id="content_14_0">proxy</h3>
<p>在本地架设代理服务器以截获并修改浏览器发出的请求。默认设置为 127.0.0.1:8080。使用时只要将浏览器的代理服务器设置为 127.0.0.1:8080，burp proxy就会截获到浏览器发出的请求，并可方便地进行修改之后再向原网站发出，以达到篡改cookie、URL、form等目的。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2006/09/burp_suite_proxy_01.png" alt="burp_suite_proxy_01.png" title="burp_suite_proxy_01.png" width="540" height="324" /></div>

<p>将浏览器的代理服务器设置为 localhost:8080，然后访问任意一个网站。burp proxy即可截获到该请求。你可以方便地编辑该请求的内容，然后按Forward按钮将编辑之后的请求发到原网站；或者按Drop按钮丢弃该请求。</p>

<h3 id="content_14_1">spider</h3>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2006/09/burp_suite_spider_01.png" alt="burp_suite_spider_01.png" title="burp_suite_spider_01.png" width="540" height="383" /></div>


<h3 id="content_14_2">intruder</h3>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2006/09/burp_suite_intruder_01.png" alt="burp_suite_intruder_01.png" title="burp_suite_intruder_01.png" width="490" height="294" /></div>


<h3 id="content_14_3">repeater</h3>
<p>burp repeater可以将同样的请求多次发送。你可以不断地修改请求的各种参数并发送，以寻找最好的攻击方法。</p>
<div class="img_margin" style="text-align:left"><img src="http://tech.idv2.com/wp-content/uploads/2006/09/burp_suite_repeater_01.png" alt="burp_suite_repeater_01.png" title="burp_suite_repeater_01.png" width="535" height="404" /></div>

<!-- end Pukiwiki generated code-->
]]></content:encoded>
			<wfw:commentRss>http://tech.idv2.com/2006/08/31/burp-suite/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
