<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://yizh1977.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2fyizh1977.spaces.live.com%2fcategory%2f%e5%85%a5%e4%be%b5%e5%92%8c%e6%94%bb%e5%87%bb%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>naka共享空间: 入侵和攻击</title><description /><link>http://yizh1977.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&amp;_c=BlogPart&amp;partqs=cat%25E5%2585%25A5%25E4%25BE%25B5%25E5%2592%258C%25E6%2594%25BB%25E5%2587%25BB</link><language>en-US</language><pubDate>Fri, 10 Oct 2008 05:24:21 GMT</pubDate><lastBuildDate>Fri, 10 Oct 2008 05:24:21 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><cf:parentRSS>http://yizh1977.spaces.live.com/blog/feed.rss</cf:parentRSS><live:type>blogcategory</live:type><live:identity><live:id>3114088440382333141</live:id><live:alias>yizh1977</live:alias></live:identity><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>数据安全保护</title><link>http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!405.entry</link><description>&lt;div&gt;    &lt;/div&gt;
&lt;div&gt;    提到数据安全保护，首先想到的是是ACl，但是ACl只能保证首次数据访问时候的安全。一旦数据被第一次访问之后，授权用户拿到文件之后，随着首次访问的结束，授权用户可以有权限发送给我其他人。通过一些非技术或者职业操守的提示，很难确保用户在有意无意间把数据外泄。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;微软使用了RMS来进行数据保护（这个东西，是今年我们公司实施的重点，但是仍然需要谨慎进行评估，因为在目前应用中不是很广泛。可能带来的问题，脱机状态是否可以打开；外出用户如何对Server进行访问）。当部署RMS之后客户场景如何？&lt;/div&gt;
&lt;div&gt;1，Secure Emails，基于outlook 2003的emailclient被保护（重点保护）&lt;/div&gt;
&lt;div&gt;     公司内部邮件不被转发给外部&lt;br&gt;     邮件没有能力被转发&lt;br&gt;&lt;br&gt;2，Secure Documents，基于word2003 ，ppt2003，Excel 2003数据保护&lt;/div&gt;
&lt;div&gt;     建立访问权限&lt;/div&gt;
&lt;div&gt;     建立访问级别－－看，改，打印&lt;/div&gt;
&lt;div&gt;     访问日志保留&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;3，Secure Intranets，低版本的office见通过IE插件来进行读取，而并不是通过office client&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;RMS如何工作&lt;/div&gt;
&lt;div&gt;RMS必须有三个角色，RMS Server为权限管理和存储中心；Active Directory为用户提供帐号；Sql Server建议EMS的所有数据都存储在SQl中，如果不购买sql，可以使用msde。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Step1，信息作者将从RMS服务器上获得许可证书&lt;br&gt;Step2，信息作者定义权限，自动将文档加密，并且将licence状态公布给Server&lt;br&gt;Step3，信息作者将数据发送&lt;br&gt;Step4，收件人将从Server上对收件人身份进行确认&lt;br&gt;Step5，收件人打开数据&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;受保护文件里面加了些什么？如下图：&lt;/div&gt;
&lt;div&gt;&lt;a href="http://byfiles.storage.live.com/y1pW9q1nnvcwsjXu9qbpUFMqsvQBOZDsOc1xcBN7T48MPmvX37aFKB_Km7ZFH0HPyc59Di0HcC2xLc" target="_blank"&gt;&lt;img style="width:554px;height:266px" height=170 alt=RMS src="http://byfiles.storage.live.com/y1pW9q1nnvcwsjXu9qbpUFMqsvQBOZDsOc1xcBN7T48MPmvX37aFKB_Km7ZFH0HPyc59Di0HcC2xLc" width=300&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;RMS server，如果Server的PrivateKey丢了，就惨了！！！！&lt;br&gt;&lt;a href="http://byfiles.storage.live.com/y1pW9q1nnvcwsinyBjxuPm3PNpGt49wS32ALpVtzpnG0HZ8JldXYVGF-IlYOrhsszGVccmUtlIopyA" target="_blank"&gt;&lt;img style="width:551px;height:253px" height=172 alt="EMS server" src="http://byfiles.storage.live.com/y1pW9q1nnvcwsinyBjxuPm3PNpGt49wS32ALpVtzpnG0HZ8JldXYVGF-IlYOrhsszGVccmUtlIopyA" width=300&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://byfiles.storage.live.com/y1pW9q1nnvcwsgI6biRg7CxaFRkuHJglycsuh5LgyfdaICnb_JK3FZz0KdxSCec_LrfX1ha_ZbmdcA" target="_blank"&gt;&lt;/a&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;PC：&lt;/div&gt;
&lt;div&gt;&lt;a href="http://byfiles.storage.live.com/y1pW9q1nnvcwsiZyLAMfTKJgsEh5-1UwwFqxgeJ9WoyxQHhU5kVamHeE0dM5DscZ1dEJQT_KTeF-Vo" target="_blank"&gt;&lt;img style="width:547px;height:267px" height=169 alt="RMS pc" src="http://byfiles.storage.live.com/y1pW9q1nnvcwsiZyLAMfTKJgsEh5-1UwwFqxgeJ9WoyxQHhU5kVamHeE0dM5DscZ1dEJQT_KTeF-Vo" width=300&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;花点时间，慢慢研究&lt;/div&gt;&lt;a href="http://byfiles.storage.live.com/y1pW9q1nnvcwsgL_z-Cx54dvDfQ3dJE3zAFmzJOWhYKreewTO0SZiLJcPEg4PzpYN7iQIWTNYgapsc" target="_blank"&gt;&lt;/a&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;a href="http://byfiles.storage.live.com/y1pW9q1nnvcwsgws2q_RQiP3o0_E1HUqcNQwz5Y3gU3t5BYK3vUjKmUnzWIRv_uOGdkkZdXmbvJQEM" target="_blank"&gt;&lt;img style="width:539px;height:252px" height=195 alt="数据保护" src="http://byfiles.storage.live.com/y1pW9q1nnvcwsgws2q_RQiP3o0_E1HUqcNQwz5Y3gU3t5BYK3vUjKmUnzWIRv_uOGdkkZdXmbvJQEM" width=300&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=3114088440382333141&amp;page=RSS%3a+%e6%95%b0%e6%8d%ae%e5%ae%89%e5%85%a8%e4%bf%9d%e6%8a%a4&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=yizh1977.spaces.live.com&amp;amp;GT1=yizh1977"&gt;</description><comments>http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!405.entry#comment</comments><guid isPermaLink="true">http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!405.entry</guid><pubDate>Thu, 14 Feb 2008 03:10:11 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://yizh1977.spaces.live.com/blog/cns!2B3776EFF823A0D5!405/comments/feed.rss</wfw:commentRss><wfw:comment>http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!405.entry#comment</wfw:comment><dcterms:modified>2008-02-14T03:15:28Z</dcterms:modified></item><item><title>小榕sql注入工具应用</title><link>http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!398.entry</link><description>&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;img title=Sarcastic style="vertical-align:middle" height=19 alt=Sarcastic src="http://shared.live.com/HjKMzTS-xzcms40!CabizA/emoticons/smile_sarcastic.gif" width=19&gt;Naka 原创&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;今天有点闲，上了小榕的网站，下了两个工具。一个是web Entry detector；一个是web Injectionscanner，有了这两个东西，再加有效的用户名，密码，字段字典，那弄起sql注入来，就一个字，爽！&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;我测试这些攻击软件都再vmware里面进行，原因很简单，vm虚拟出来的主机，不怕中病毒 ^_^。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;1，&lt;a href="http://www.netxeyes.com/main.html"&gt;www.netxeyes.com/main.html&lt;/a&gt;下载WED和WIS，如果你在真实环境中玩，那么你就把杀毒软件关了。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;2，下来之后，进入dos模式下，找到这两个文件夹&lt;br&gt;     wis &lt;a href="http://www.xxxx.com/"&gt;http://www.xxxx.com/&lt;/a&gt; &amp;gt;c:/xx.txt    这个语句是让wis去scan &lt;a href="http://www.xxxx.com/"&gt;www.xxxx.com&lt;/a&gt;然后将这个结果放在c盘下的xx.txt中，免得一会使用web的时候自己用手来打。我随便找了一个网站，如下图：&lt;/div&gt;
&lt;div&gt;&lt;a href="http://byfiles.storage.live.com/y1pW9q1nnvcwsiKzLzLM0mY2DbvZGPOaj9UZwdVGK6L8Gfy1NaCvBu_FB5YhOqapucP6967mWR7ni4" target="_blank"&gt;&lt;img style="width:549px;height:193px" height=137 alt=wis src="http://byfiles.storage.live.com/y1pW9q1nnvcwsiKzLzLM0mY2DbvZGPOaj9UZwdVGK6L8Gfy1NaCvBu_FB5YhOqapucP6967mWR7ni4" width=300&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;这个就是可以利用的注入了。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;3，下一步，你得使用wed&lt;br&gt;      也是在dos下面：&lt;/div&gt;
&lt;div&gt;     wed &lt;a href="http://www.xxxx.com/ljnxweb.ch..................?CS_MISS_ID=87"&gt;http://www.xxxx.com/ljnxweb.ch..................?CS_MISS_ID=87&lt;/a&gt;，之后出现下面得图：&lt;/div&gt;
&lt;div&gt;&lt;a href="http://byfiles.storage.live.com/y1pW9q1nnvcwsgx0zpn0qBdagNt17doEhMZH-aGiJZ49VHWHeZnvz2cS_ny-Mr_zoZty29re-2nbc0" target="_blank"&gt;&lt;img style="width:541px;height:230px" height=134 alt=web src="http://byfiles.storage.live.com/y1pW9q1nnvcwsgx0zpn0qBdagNt17doEhMZH-aGiJZ49VHWHeZnvz2cS_ny-Mr_zoZty29re-2nbc0" width=300&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;只要你的wed文件夹下面的字段名称，用户名，密码足够强健，那么找到用户名和密码是迟早的事情了&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=3114088440382333141&amp;page=RSS%3a+%e5%b0%8f%e6%a6%95sql%e6%b3%a8%e5%85%a5%e5%b7%a5%e5%85%b7%e5%ba%94%e7%94%a8&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=yizh1977.spaces.live.com&amp;amp;GT1=yizh1977"&gt;</description><comments>http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!398.entry#comment</comments><guid isPermaLink="true">http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!398.entry</guid><pubDate>Mon, 28 Jan 2008 07:33:56 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://yizh1977.spaces.live.com/blog/cns!2B3776EFF823A0D5!398/comments/feed.rss</wfw:commentRss><wfw:comment>http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!398.entry#comment</wfw:comment><dcterms:modified>2008-01-28T07:36:41Z</dcterms:modified></item><item><title>使用 Hping 模擬 DDos 攻擊</title><link>http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!248.entry</link><description>&lt;div&gt;
&lt;div&gt;使用 Hping 模擬 DDos 攻擊 (这个可以在snort上试一试)&lt;br&gt;&lt;br&gt;下載網址 &lt;br&gt;http://www.hping.&lt;span&gt;org&lt;/span&gt;/ &lt;br&gt;&lt;br&gt;安裝hping (建議將hping2.0.0-rc1.tar.gz檔案放在 /usr/local下) &lt;br&gt;# tar zxvf hping2.0.0-rc1.tar.gz &lt;br&gt;# cd hping2 &lt;br&gt;# ./configure &lt;br&gt;# make &lt;br&gt;# make install &lt;br&gt;&lt;br&gt;要看說明，可以輸入 hping2 --help &lt;br&gt;&lt;br&gt;下面是一些常用的方法 &lt;br&gt;&lt;br&gt;hping www.abc.net.tw -1 -i u100000 -a 100.100.100.100 &lt;br&gt;每秒送10個(-i u10000)ICMP(-1)封包到www.abc.net.tw 偽造來源IP(-a)為100.100.100.100 &lt;br&gt;&lt;br&gt;註：-1為數字非英文 &lt;br&gt;&lt;br&gt;hping www.abc.net.tw –i u1000000 –a 100.100.100.100 –s 22222 –p 44444 &lt;br&gt;每秒送1個(-i u1000000)TCP(default)封包到www.abc.net.tw的port 44444，偽造來源IP(-a)100.100.100.100使用的port為22222 &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;測試1： SYN Flooding(每秒10個封包) &lt;br&gt;hping 目標主機IP –i u100000 –S –a 偽造來源IP &lt;br&gt;&lt;br&gt;測試2 ：偽造IP的ICMP封包(每秒10個封包) &lt;br&gt;hping 目標主機IP –i u100000 –1 –a 偽造來源IP &lt;br&gt;註：-1為數字非英文 &lt;br&gt;&lt;br&gt;測試3：不正常TCP Flag組合封包(每秒10個封包) &lt;br&gt;(a)SYN+FIN &lt;br&gt;hping 目標主機IP –i u100000 –S –F –a 偽造來源IP &lt;br&gt;(b)X’mas &lt;br&gt;hping 目標主機IP –i u100000 –F –S –R –P –A –U –a 偽造來源IP &lt;br&gt;測試4：偽造IP的UDP封包 &lt;br&gt;hping目標主機IP –i u100000 –2 –a 偽造來源IP &lt;br&gt;&lt;br&gt;測試5：偽造IP內含CodeRed封包 &lt;br&gt;hping 目標主機IP –i u100000 –d [封包datasize] –E [filename] –a [偽造來源IP] &lt;br&gt;&lt;br&gt;PS：您可以拿它來測試您的系統防護能力，但是千萬別拿來亂用&lt;/div&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=3114088440382333141&amp;page=RSS%3a+%e4%bd%bf%e7%94%a8+Hping+%e6%a8%a1%e6%93%ac+DDos+%e6%94%bb%e6%93%8a&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=yizh1977.spaces.live.com&amp;amp;GT1=yizh1977"&gt;</description><comments>http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!248.entry#comment</comments><guid isPermaLink="true">http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!248.entry</guid><pubDate>Tue, 01 Jan 2008 12:43:08 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://yizh1977.spaces.live.com/blog/cns!2B3776EFF823A0D5!248/comments/feed.rss</wfw:commentRss><wfw:comment>http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!248.entry#comment</wfw:comment><dcterms:modified>2008-01-01T12:43:08Z</dcterms:modified></item><item><title>入侵Oracle数据库时常用的操作命令--收藏</title><link>http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!204.entry</link><description>&lt;p&gt;　1、su-oracle 不是必需，适合于没有DBA密码时使用，可以不用密码来进入sqlplus界面。  &lt;p&gt;　　2、sqlplus /nolog 或sqlplus system/manager 或./sqlplus&lt;u&gt; &lt;/u&gt;&lt;a href="mailto:system/manager@ora9i"&gt;system/manager@ora9i&lt;/a&gt;; &lt;p&gt;　　3、SQL&amp;gt;connect / as sysdba ;（as sysoper）或&lt;br&gt;　　connect internal/oracle AS SYSDBA ;(scott/tiger)&lt;br&gt;　　conn sys/change_on_install as sysdba; &lt;p&gt;　　4、SQL&amp;gt;startup; 启动数据库实例 &lt;p&gt;　　5、 查看当前的所有数据库: select * from v$database;&lt;br&gt;　　select name from v$database;&lt;br&gt;　　desc v$databases; 查看数据库结构字段 &lt;p&gt;　　7、怎样查看哪些用户拥有SYSDBA、SYSOPER权限:&lt;br&gt;　　SQL&amp;gt;select * from V_$PWFILE_USERS;&lt;br&gt;　　Show user;查看当前数据库连接用户 &lt;p&gt;　　8、进入test数据库：database test;  &lt;p&gt;　　9、查看所有的数据库实例：select * from v$instance；&lt;br&gt;　　如：ora9i &lt;p&gt;　　10、查看当前库的所有数据表：&lt;br&gt;　　SQL&amp;gt; select TABLE_NAME from all_tables; &lt;br&gt;　　select * from all_tables;&lt;br&gt;　　SQL&amp;gt; select table_name from all_tables where table_name like '%u%'; &lt;p&gt;　　TABLE_NAME&lt;br&gt;　　------------------------------&lt;br&gt;　　_default_auditing_options_ &lt;p&gt;　　11、查看表结构：desc all_tables; &lt;p&gt;　　12、显示CQI.T_BBS_XUSER的所有字段结构：&lt;br&gt;　　desc CQI.T_BBS_XUSER;  &lt;p&gt;　　13、获得CQI.T_BBS_XUSER表中的记录：&lt;br&gt;　　select * from CQI.T_BBS_XUSER;  &lt;p&gt;　　14、增加数据库用户：(test11/test)&lt;br&gt;　　create user test11 identified by test default tablespace users Temporary TABLESPACE Temp; &lt;p&gt;　　15、用户授权: &lt;br&gt;　　grant connect，resource，dba to test11;&lt;br&gt;　　grant sysdba to test11;&lt;br&gt;　　commit; &lt;p&gt;　　16、更改数据库用户的密码：(将sys与system的密码改为test。)&lt;br&gt;　　alter user sys indentified by test;&lt;br&gt;　　alter user system indentified by test。&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=3114088440382333141&amp;page=RSS%3a+%e5%85%a5%e4%be%b5Oracle%e6%95%b0%e6%8d%ae%e5%ba%93%e6%97%b6%e5%b8%b8%e7%94%a8%e7%9a%84%e6%93%8d%e4%bd%9c%e5%91%bd%e4%bb%a4--%e6%94%b6%e8%97%8f&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=yizh1977.spaces.live.com&amp;amp;GT1=yizh1977"&gt;</description><comments>http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!204.entry#comment</comments><guid isPermaLink="true">http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!204.entry</guid><pubDate>Sat, 15 Dec 2007 07:06:40 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://yizh1977.spaces.live.com/blog/cns!2B3776EFF823A0D5!204/comments/feed.rss</wfw:commentRss><wfw:comment>http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!204.entry#comment</wfw:comment><dcterms:modified>2007-12-15T07:06:40Z</dcterms:modified></item><item><title>RedHat linux 9系统下构建小型入侵检测系统(转)</title><link>http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!177.entry</link><description>&lt;h5&gt;&lt;strong&gt;一、系统平台&lt;br&gt;&lt;/strong&gt;&lt;br&gt;　　Redhat9.0发行版， 安装gcc 及相关库文件，建议不要安装&lt;br&gt;　　Apache,PHP,MySQL,我们将用源码编译安装。基于安全方面的&lt;br&gt;　　考虑，可以设置一下iptables只允许SSH和WWW访问。&lt;/h5&gt; &lt;h5&gt;&lt;br&gt;&lt;strong&gt;二、软件&lt;br&gt;&lt;/strong&gt;&lt;br&gt;　　MySQL4.0.12 &lt;a href="http://mysql.secsup.org/"&gt;http://mysql.secsup.org&lt;/a&gt;&lt;br&gt;　　Snort2.0.0 &lt;a href="http://www.snort.org/"&gt;http://www.snort.org&lt;/a&gt;&lt;br&gt;　　Apache2.0.45 &lt;a href="http://www.apache.org/"&gt;http://www.apache.org&lt;/a&gt;&lt;br&gt;　　PHP4.3.1 &lt;a href="http://www.php.net/"&gt;http://www.php.net&lt;/a&gt;&lt;br&gt;　　ADODBv3.30 &lt;a href="http://phplens.com/"&gt;http://phplens.com&lt;/a&gt;&lt;br&gt;　　Acid0.9.6b23 &lt;a href="http://acidlab.sourceforge.net/"&gt;http://acidlab.sourceforge.net&lt;/a&gt;&lt;br&gt;　　Zlib1.1.4 &lt;a href="http://flow.dl.sourceforge.net/"&gt;http://flow.dl.sourceforge.net&lt;/a&gt;&lt;br&gt;　　JPGraph1.11 &lt;a href="http://jpgraph.techuk.com/"&gt;http://jpgraph.techuk.com&lt;/a&gt;&lt;br&gt;　　LibPcap0.7.2 &lt;a href="http://www.tcpdump.org/"&gt;http://www.tcpdump.org&lt;/a&gt;&lt;br&gt;　　建议到这个站点下载&lt;a href="http://ftp.cdut.edu.cn/pub/linux/NEW/"&gt;http://ftp.cdut.edu.cn/pub/linux/NEW/&lt;/a&gt;&lt;br&gt;　　也可以到&lt;a href="http://www.rpmfind.com/"&gt;http://www.rpmfind.com&lt;/a&gt;下载相关的xx.src.rpm编译安装。如若安装了rpm包，可以强行将其反安装&lt;br&gt;　　rpm -e -nodeps xx.xx&lt;/h5&gt; &lt;h5&gt;&lt;br&gt;&lt;strong&gt;三、安装（建议将所有的包文件考到同一目录）&lt;/strong&gt;&lt;br&gt;　　1.安装zlib1.1.4&lt;br&gt;　　tar -xzvf zlib-xx.tar.gz&lt;br&gt;　　cd zlib-xx&lt;br&gt;　　/configure;make test&lt;br&gt;　　make install&lt;br&gt;　　cd ..&lt;br&gt;　　2.安装LibPcap0.7.2&lt;br&gt;　　tar -xzvf libpcap.tar.gz&lt;br&gt;　　cd libpcap-xx&lt;br&gt;　　/configure&lt;br&gt;　　make&lt;br&gt;　　make install&lt;br&gt;　　cd ..&lt;br&gt;　　3.安装MySQL4.0.12&lt;br&gt;　　3.1创建mysql组和mysql用户&lt;br&gt;　　groupadd mysql&lt;br&gt;　　useradd -g mysql mysql&lt;br&gt;　　修改/root下的.bash_profile的这一行：&lt;br&gt;　　PATH=?$PATH:?$HOME/bin 为&lt;br&gt;　　PATH=?$PATH:?$HOME/bin:/usr/local/mysql/bin&lt;br&gt;　　3.2安装mysql&lt;br&gt;　　tar -xzvf mysql-xx.tar.gz&lt;br&gt;　　cd mysql-xx&lt;br&gt;　　/configure --prefix=/usr/local/mysql&lt;br&gt;　　make&lt;br&gt;　　make install&lt;br&gt;　　cd scripts&lt;br&gt;　　/mysql_install_db&lt;br&gt;　　chown -R root /usr/local/mysql&lt;br&gt;　　chown -R mysql /usr/local/mysql/var&lt;br&gt;　　chgrp -R mysql /usr/local/mysql&lt;br&gt;　　cd ./support-files/my-medium.cnf /etc/my.cnf&lt;br&gt;　　向/etc/ld.so.conf中加入两行：/usr/local/mysql/lib/mysql&lt;br&gt;　　/usr/local/lib&lt;br&gt;　　载入库，执行&lt;br&gt;　　ldconfig -v&lt;br&gt;　　3.3测试mysql是否工作：&lt;br&gt;　　cd /usr/local/mysql/bin/&lt;br&gt;　　/mysqld_safe --user=mysql&amp;amp;&lt;br&gt;　　#ps -ef |grep mysql&lt;br&gt;　　看mysql_safe是否工作&lt;br&gt;　　3.4设置mysql为自启动：&lt;br&gt;　　将mysql安装目录下的support-files目录中的&lt;br&gt;　　mysql.server文件拷到/etc/init.d目录&lt;br&gt;　　cp mysql.server /etc/init.d/mysql&lt;br&gt;　　chmod 755 /etc/init.d/mysql&lt;br&gt;　　创建硬链接:&lt;br&gt;　　cd /etc/rc3.d（文本方式启动)&lt;br&gt;　　ln -s /etc/init.d/mysql S85mysql&lt;br&gt;　　ln -s /etc/init.d/mysql K85mysql&lt;br&gt;　　cd /etc/rc5.d (图形方式启动）&lt;br&gt;　　ln -s /etc/init.d/mysql S85mysql&lt;br&gt;　　ln -s /etc/init.d/mysql K85mysql&lt;br&gt;　　4.安装Apache2.0.45和PHP4.3.1&lt;br&gt;　　tar -zxvf httpd-2.0.xx.tar.gz&lt;br&gt;　　cd httpd_2.xx.xx&lt;br&gt;　　/configure --prefix=/www --enable-so&lt;br&gt;　　注：apache根目录为 /www&lt;br&gt;　　make&lt;br&gt;　　make install&lt;br&gt;　　cd ..&lt;br&gt;　　tar -zxvf php-4.3.x.tar.gz&lt;br&gt;　　cd php-4.3.x&lt;br&gt;　　/configure --prefix=/www/php --with-apxs2=/www/bin/apxs --with-config- filepath=/www/php --enable-sockets --with-mysql=/usr/local/mysql --with-zlibdir=/&lt;br&gt;　　usr/local --with- gd &lt;br&gt;　　注意：这些为一行，中间不要有回车。&lt;br&gt;　　cp php.ini-dist /www/php/php.ini&lt;br&gt;　　编辑httpd.conf(/www/conf):&lt;br&gt;　　加入两行&lt;br&gt;　　LoadModule php4_module modules/libphp4.so&lt;br&gt;　　AddType application/x-httpd-php .php&lt;br&gt;　　httpd.conf中相关内容如下：&lt;br&gt;　　#&lt;br&gt;　　# LoadModule foo_module modules/mod_foo.so&lt;br&gt;　　LoadModule php4_module modules/libphp4.so&lt;br&gt;　　# AddType allows you to tweak mime.types without actually editing it, or ?$&lt;br&gt;　　# make certain files to be certain types.&lt;br&gt;　　#&lt;br&gt;　　AddType application/x-tar .tgz&lt;br&gt;　　AddType image/x- icon .ico&lt;br&gt;　　AddType application/x-httpd-php .php&lt;br&gt;　　设置Apache为自启动：&lt;br&gt;　　cp /www/bin/apachectl /etc/init.d/httpd&lt;br&gt;　　cd /etc/rc3.d&lt;br&gt;　　ln -s /etc/init.d/httpd S85httpd&lt;br&gt;　　ln -s /etc/init.d/httpd K85httpd&lt;br&gt;　　cd /etc/rc5.d&lt;br&gt;　　ln -s /etc/init.d/httpd S85httpd&lt;br&gt;　　ln -s /etc/init.d/httpd K85httpd&lt;br&gt;　　测试一下 PHP:&lt;br&gt;　　cd /etc/init.d&lt;br&gt;　　/httpd start&lt;br&gt;　　在/www/htdocs下建立文件 test.php&lt;br&gt;　　cd /www/htdocs&lt;br&gt;　　vi test.php&lt;br&gt;　　加入&lt;br&gt;　　lt;?php&lt;br&gt;　　hpinfo();&lt;br&gt;　　?&amp;gt;&lt;br&gt;　　用浏览器访问http://IP_address/test.php,成功的话，出现一些&lt;br&gt;　　系统,apache,php信息&lt;br&gt;　　5.安装 Snort2.0&lt;br&gt;　　5.1建立snort配置文件和日志目录&lt;br&gt;　　mkdir /etc/snort&lt;br&gt;　　mkdir /var/log/snort&lt;br&gt;　　tar -zxvf snort-2.x.x.tar.gz&lt;br&gt;　　cd snort-2.x.x&lt;br&gt;　　/configure --with-mysql=/usr/local/mysql&lt;br&gt;　　make&lt;br&gt;　　make install&lt;br&gt;　　5.2安装规则和配置文件&lt;br&gt;　　cd rules (在snort安装目录下）&lt;br&gt;　　cp * /etc/snort&lt;br&gt;　　cd ./etc&lt;br&gt;　　cp snort.conf /etc/snort&lt;br&gt;　　cp *.config /etc/snort&lt;br&gt;　　5.3修改snort.conf(/etc/snort/snort.conf)&lt;br&gt;　　var HOME_NET 10.2.2.0/24 (修改为你的内部网网络地址，我的是&lt;br&gt;　　192.168.0.0/24)&lt;br&gt;　　var RULE_PATH ./rules 修改为 var RULE_PATH /etc/snort/&lt;br&gt;　　改变记录日志数据库：&lt;br&gt;　　output database: log, mysql, user=root password=your_password&lt;br&gt;　　dbname=snort host=localhost&lt;br&gt;　　5.4设置snort为自启动：&lt;br&gt;　　在snort安装目录下&lt;br&gt;　　cd /contrib&lt;br&gt;　　cp S99snort /etc/init.d/snort&lt;br&gt;　　vi /etc/init.d/snort&lt;br&gt;　　修改snort如下：&lt;br&gt;　　CONFIG=/etc/snort/snort.conf&lt;br&gt;　　#SNORT_GID=nogroup (注释掉）&lt;br&gt;　　#8194;$SNORT_PATH/snort -c ?$CONFIG -i ?$IFACE ?$OPTIONS&lt;br&gt;　　(去掉原文件中的 -g ?$SNORT_GID )&lt;br&gt;　　chmod 755 /etc/init.d/snort&lt;br&gt;　　cd /etc/rc3.d&lt;br&gt;　　ln -s /etc/init.d/snort S99snort&lt;br&gt;　　ln -s /etc/init.d/snort K99snort&lt;br&gt;　　cd /etc/rc5.d&lt;br&gt;　　ln -s /etc/init.d/snort S99snort&lt;br&gt;　　ln -s /etc/init.d/snort K99snort&lt;br&gt;　　四.在mysql中建立数据库&lt;br&gt;　　/usr/local/mysql/bin/mysql&lt;br&gt;　　mysql&amp;gt;SET PASSWORD FOR root@localhost=PASSWORD('your_password');&lt;br&gt;　　mysql&amp;gt;create database snort;&lt;br&gt;　　mysql&amp;gt;grant INSERT,SELECT on root.* to snort@localhost;&lt;br&gt;　　mysql&amp;gt;quit;&lt;br&gt;　　进入snort安装目录：/usr/local/mysql/bin/mysql -p 　　&lt;br&gt;　　gt;Enter password:&lt;br&gt;　　安装DB表：(在contrib目录）&lt;br&gt;　　zcat snortdb-extra.gz | /usr/local/mysql/bin/mysql -p snort&lt;br&gt;　　进入mysql数据库，看看snort数据库中的表：&lt;br&gt;　　/usr/local/mysql/bin/mysql -p&lt;br&gt;　　gt;Enter password:&lt;br&gt;　　mysql&amp;gt;show databases;&lt;br&gt;　　+------------+&lt;br&gt;　　| Database&lt;br&gt;　　+------------+&lt;br&gt;　　| mysql&lt;br&gt;　　| snort&lt;br&gt;　　| test&lt;br&gt;　　+------------+&lt;br&gt;　　3 rows in set (0.00 sec)&lt;br&gt;　　mysql&amp;gt;use snort;&lt;br&gt;　　mysql&amp;gt;show tables; 将会有这些：&lt;br&gt;　　+------------------+&lt;br&gt;　　| Tables_in_snort |&lt;br&gt;　　+------------------+&lt;br&gt;　　| data&lt;br&gt;　　| detail&lt;br&gt;　　| encoding&lt;br&gt;　　| event&lt;br&gt;　　| flags&lt;br&gt;　　| icmphdr&lt;br&gt;　　| iphdr&lt;br&gt;　　| opt&lt;br&gt;　　| protocols&lt;br&gt;　　| reference&lt;br&gt;　　| reference_system&lt;br&gt;　　| schema&lt;br&gt;　　| sensor&lt;br&gt;　　| services&lt;br&gt;　　| sig_class&lt;br&gt;　　| sig_reference&lt;br&gt;　　| signature&lt;br&gt;　　| tcphdr&lt;br&gt;　　| udphdr&lt;br&gt;　　+------------------+&lt;br&gt;　　19 rows in set (0.00 sec)&lt;br&gt;　　mysql&amp;gt;exit&lt;/h5&gt; &lt;h5&gt;&lt;br&gt;　　五.安装配置Web接口&lt;br&gt;　　安装JPGraph1.11&lt;br&gt;　　cp jpgraph-1.11.tar.gz /www/htdocs&lt;br&gt;　　cd /www/htdocs&lt;br&gt;　　tar -xzvf jpgraph-1.xx.tar.gz&lt;br&gt;　　rm -rf jpgrap-1.xx.tar.gz&lt;br&gt;　　cd jpgraph-1.11&lt;br&gt;　　rm -rf README&lt;br&gt;　　rm -rf QPL.txt&lt;br&gt;　　安装ADODB:&lt;br&gt;　　cp adodb330.tgz /www/htdocs/&lt;br&gt;　　cd /www/htdocs&lt;br&gt;　　tar -xzvf adodb330.tgz&lt;br&gt;　　rm -rf adodb330.tgz&lt;br&gt;　　安装配置Acid:&lt;br&gt;　　cp acid-0.0.6b23.tar.gz /www/htdocs&lt;br&gt;　　cd /www/htdocs&lt;br&gt;　　tar -xvzf acid-0.9.6b23.tar.gz&lt;br&gt;　　rm -rf acid-0.9.6b23.tar.gz&lt;br&gt;　　cd /www/htodcs/acid/&lt;br&gt;　　编辑acid_conf.php,修改相关配置如下：&lt;br&gt;　　#8194;$DBlib_path = &amp;quot;/www/htdocs/adodb&amp;quot;;&lt;br&gt;　　/* The type of underlying alert database&lt;br&gt;　　*&lt;br&gt;　　* MySQL : &amp;quot;mysql&amp;quot;&lt;br&gt;　　* PostgresSQL : &amp;quot;postgres&amp;quot;&lt;br&gt;　　* MS SQL Server : &amp;quot;mssql&amp;quot;&lt;br&gt;　　*/&lt;br&gt;　　#8194;$DBtype = &amp;quot;mysql&amp;quot;;&lt;br&gt;　　/* Alert DB connection parameters&lt;br&gt;　　* - ?$alert_dbname : MySQL database name of Snort alert DB&lt;br&gt;　　* - ?$alert_host : host on which the DB is stored&lt;br&gt;　　* - ?$alert_port : port on which to access the DB&lt;br&gt;　　* - ?$alert_user : login to the database with this user&lt;br&gt;　　* - ?$alert_password : password of the DB user&lt;br&gt;　　*&lt;br&gt;　　* This information can be gleaned from the Snort database&lt;br&gt;　　* output plugin configuration.&lt;br&gt;　　*/&lt;br&gt;　　#8194;$alert_dbname = &amp;quot;snort&amp;quot;;&lt;br&gt;　　#8194;$alert_host = &amp;quot;localhost&amp;quot;;&lt;br&gt;　　#8194;$alert_port = &amp;quot;&amp;quot;;&lt;br&gt;　　#8194;$alert_user = &amp;quot;root&amp;quot;;&lt;br&gt;　　#8194;$alert_password = &amp;quot;Your_Password&amp;quot;;&lt;br&gt;　　/* Archive DB connection parameters */&lt;br&gt;　　#8194;$archive_dbname = &amp;quot;snort&amp;quot;;&lt;br&gt;　　#8194;$archive_host = &amp;quot;localhost&amp;quot;;&lt;br&gt;　　#8194;$archive_port = &amp;quot;&amp;quot;;&lt;br&gt;　　#8194;$archive_user = &amp;quot;root&amp;quot;;&lt;br&gt;　　#8194;$archive_password = &amp;quot;Your_Password &amp;quot;;&lt;br&gt;　　And a little further down&lt;br&gt;　　#8194;$ChartLib_path = &amp;quot;/www/htdocs/jpgraph-1.11/src&amp;quot;;&lt;br&gt;　　/* File format of charts ('png', 'jpeg', 'gif') */&lt;br&gt;　　#8194;$chart_file_format = &amp;quot;png&amp;quot;;&lt;br&gt;　　进入web界面：&lt;br&gt;　　http://yourhost/acid/acid_main.php &lt;br&gt;　　点&amp;quot;Setup Page&amp;quot;链接 -&amp;gt;Create Acid AG&lt;br&gt;　　访问&lt;a href="http://yourhost/acid"&gt;http://yourhost/acid&lt;/a&gt;将会看到ACID界面。&lt;/h5&gt; &lt;h5&gt;&lt;br&gt;　　六.测试系统&lt;br&gt;　　重启系统或者直接启动相关后台程序：&lt;br&gt;　　/etc/init.d/mysql restart&lt;br&gt;　　/etc/init.d/snort start&lt;br&gt;　　/etc/init.d/httpd start&lt;br&gt;　　利用nmap,nessus,CIS或者X-scan对系统进行扫描，&lt;br&gt;　　产生告警纪录。&lt;br&gt;　　http://yourhost/acid 察看纪录。&lt;br&gt;　　至此，一个功能强大的IDS配置完毕。各位可以利用web界面&lt;br&gt;　　远程登陆，监控主机所处局域网，同时安装phpMyAdmin对mysql&lt;br&gt;　　数据库进行操控。 &lt;/h5&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=3114088440382333141&amp;page=RSS%3a+RedHat+linux+9%e7%b3%bb%e7%bb%9f%e4%b8%8b%e6%9e%84%e5%bb%ba%e5%b0%8f%e5%9e%8b%e5%85%a5%e4%be%b5%e6%a3%80%e6%b5%8b%e7%b3%bb%e7%bb%9f(%e8%bd%ac)&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=yizh1977.spaces.live.com&amp;amp;GT1=yizh1977"&gt;</description><comments>http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!177.entry#comment</comments><guid isPermaLink="true">http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!177.entry</guid><pubDate>Mon, 03 Dec 2007 08:43:23 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://yizh1977.spaces.live.com/blog/cns!2B3776EFF823A0D5!177/comments/feed.rss</wfw:commentRss><wfw:comment>http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!177.entry#comment</wfw:comment><dcterms:modified>2008-01-02T12:08:54Z</dcterms:modified></item><item><title>RHEL5 下 SNORT 实战</title><link>http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!165.entry</link><description>&lt;div&gt;
&lt;p style="margin:0cm 0cm 0pt;text-align:left" align=left&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;&lt;img title="讽刺" style="vertical-align:middle" height=19 alt="讽刺" src="http://shared.live.com/HjKMzTS-xzcms40!CabizA/emoticons/smile_sarcastic.gif" width=19&gt;Naka&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;原创&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;&lt;br&gt;    &lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;在&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;windows&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;下的抓包和&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;ARP&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;sniffer&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;软件很多，而且一直在用，也比较熟悉。现在开始对&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;linux&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;疯狂，所以也想在&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;linux&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;下弄个玩玩，早就听说过&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;snort&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;了，除了抓包，它还是个IDS，它比不上&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;cisco&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;和&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;3com&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;等等厂家的&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;IDS&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;，但是毕竟&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;Snort&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;是免费的，所以目标锁定&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;snort，先抓抓包，再过过IDS的瘾&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;。&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;&lt;br&gt;    &lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;走了两天的弯路，终于在凌晨1:00安装好了。一开始的时候使用编译和&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;RPM&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;的混合形式来安装，实在是黔驴技穷了，后来就所有环境，包括&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;Snort&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;都使用了&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;RPM&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;来安装才算是完成了这个工作（从这个安装过程中可以总结到一点，就是安装一个条件比较多的软件时候，要不就全部使用&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;RPM&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;要不就全部编译，不然死路一条）。&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;&lt;br&gt; &lt;br&gt;&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;安装环境：&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;&lt;br&gt;1&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;RHEL5&lt;br&gt;2&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;libpcap-0.9.4.8.1&lt;br&gt;3&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;libpcap-devel-0.9.4.8.1&lt;br&gt;4&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;pcre-devel-6.6.1.1&lt;br&gt;5&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;snort&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;－&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;2.8.0-1&lt;br&gt; &lt;br&gt;&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;以上&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;3&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;4&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;5&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;必须自己去找，在&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;RHEL5&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;光盘里面没有，找这些东西是一个很痛苦的过程。还有几个环境我没有写出来，因为这次我只是写出&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;Snort&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;安装成功，太晚了，并不打算把&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;mysql&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;acid&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;php&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;等写出来，下次有时间再写。至于&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;rpm&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;包的安装，直接使用&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;rpm&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;管理工具或者命令行都可以。&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;&lt;br&gt;&lt;br&gt;&lt;/span&gt;
&lt;p style="margin:0cm 0cm 0pt;text-align:left" align=left&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;下面是我测试的结果：&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;嗅探器&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;:&lt;br&gt;1,snort -v  //snort&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;输出TCP/IP&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;信息&lt;/span&gt; 
&lt;p style="margin:0cm 0cm 0pt;text-align:left" align=left&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;&lt;a href="http://byfiles.storage.live.com/y1pW9q1nnvcwsh_lHHMtrypTrpjZbrqfD2DrtH7FLv8PbTvtwsN-9QhbyVmTX_DmiFJoJdAYhR71jM" target="_blank"&gt;&lt;img height=200 alt="snort v" src="http://byfiles.storage.live.com/y1pW9q1nnvcwsh_lHHMtrypTrpjZbrqfD2DrtH7FLv8PbTvtwsN-9QhbyVmTX_DmiFJoJdAYhR71jM" width=261&gt;&lt;/a&gt;&lt;/span&gt; 
&lt;p style="margin:0cm 0cm 0pt;text-align:left" align=left&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;&lt;a href="http://byfiles.storage.live.com/y1pW9q1nnvcwsiA5gRyiiyuIPsvvoSwxDA9pePJDgrlCGQjneCNr82BfqLuCkYi5TFHtDDWt3gidoc" target="_blank"&gt;&lt;span style="color:white;text-decoration:none;text-underline:none"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;
&lt;p style="margin:0cm 0cm 0pt;text-align:left" align=left&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;由于我是在家通过&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;vpn&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;调试&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;192.168.201.250&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;的&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;xp&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;，然后再通过&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;192.168.201.250&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;来调试&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;192.168.2016.250&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;，因此可以看到这些包&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;  &lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;：）&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;.&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;如果使用&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;ctrl&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;＋C来阻止，可以看到一些统计数据&lt;/span&gt;
&lt;p style="margin:0cm 0cm 0pt;text-align:left" align=left&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;&lt;a href="http://byfiles.storage.live.com/y1pW9q1nnvcwshLkAUBD0lH_73r_Mce3E5kbc4ZrRSYzVIYjzU1Yj1nWzdzM12thTfHGc74TL34uXg" target="_blank"&gt;&lt;img height=200 alt="snort v ctrl c" src="http://byfiles.storage.live.com/y1pW9q1nnvcwshLkAUBD0lH_73r_Mce3E5kbc4ZrRSYzVIYjzU1Yj1nWzdzM12thTfHGc74TL34uXg" width=272&gt;&lt;/a&gt;&lt;/span&gt; 
&lt;p style="margin:0cm 0cm 0pt;text-align:left" align=left&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;&lt;a href="http://byfiles.storage.live.com/y1pW9q1nnvcwshBARJz6vU6jvZwL_EHu9V0mFxDJjQRJKDHmK0pYmHYclOUBslfqo_8rpDq381QluQ" target="_blank"&gt;&lt;span style="color:white;text-decoration:none;text-underline:none"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;
&lt;p style="margin:0cm 0cm 0pt"&gt;&lt;font size=3&gt;&lt;span lang=EN-US&gt;&lt;font face="Times New Roman"&gt;2&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;，&lt;/span&gt;&lt;/font&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;snort –vd  //snort&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;输出应用层信息&lt;/span&gt; 
&lt;p style="margin:0cm 0cm 0pt"&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;&lt;a href="http://byfiles.storage.live.com/y1pW9q1nnvcwsgGQnvJCI8Zw1v_nuLsnORPAqgJcuaowskBTpmSVyjouILXerbA2EH2si2qox48Si0" target="_blank"&gt;&lt;img height=200 alt=yy src="http://byfiles.storage.live.com/y1pW9q1nnvcwsgGQnvJCI8Zw1v_nuLsnORPAqgJcuaowskBTpmSVyjouILXerbA2EH2si2qox48Si0" width=267&gt;&lt;/a&gt;&lt;/span&gt; 
&lt;p style="margin:0cm 0cm 0pt"&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;3&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;snort –vde //snort&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;输出数据链路层信息&lt;/span&gt; 
&lt;p style="margin:0cm 0cm 0pt"&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;&lt;a href="http://byfiles.storage.live.com/y1pW9q1nnvcwsjkMpDgm7heLq4_WntCcv4Mg-lzx4fFBrnrmXn2JwfECKkP_euOQ5SsgooQtfeRmbI" target="_blank"&gt;&lt;img height=200 alt=sjll src="http://byfiles.storage.live.com/y1pW9q1nnvcwsjkMpDgm7heLq4_WntCcv4Mg-lzx4fFBrnrmXn2JwfECKkP_euOQ5SsgooQtfeRmbI" width=272&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;&lt;/span&gt; 
&lt;p style="margin:0cm 0cm 0pt"&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;4&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;snort –vde –l /root/log/&lt;span&gt;  &lt;/span&gt;//&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;将结果输出到&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;/root/log/ &lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;文件夹下面，当然，你必须在&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;root&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;下使用&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;mkdir&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;建立&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;log&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;，以后我会将&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;log&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;放入到数据库中（&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;mysql&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;或者其他的数据库，只要&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;snort&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;能连接上就&lt;/span&gt;&lt;span lang=EN-US style="font-size:9.5pt;color:black;font-family:Verdana"&gt;ok&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;）&lt;/span&gt; 
&lt;p style="margin:0cm 0cm 0pt"&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;&lt;a href="http://byfiles.storage.live.com/y1pW9q1nnvcwsgSUYHyireZ58YC7GnjrZXor6e6AQM8xBcUxeJQ8bGtwKhbvIjTCafh6YcZIXpXEIc" target="_blank"&gt;&lt;img height=200 alt=log src="http://byfiles.storage.live.com/y1pW9q1nnvcwsgSUYHyireZ58YC7GnjrZXor6e6AQM8xBcUxeJQ8bGtwKhbvIjTCafh6YcZIXpXEIc" width=278&gt;&lt;/a&gt;&lt;/span&gt; 
&lt;p style="margin:0cm 0cm 0pt"&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;&lt;/span&gt;  
&lt;p style="margin:0cm 0cm 0pt"&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;关于更多的参数信息，请看完我的google hack实战之后思索“&lt;span&gt;Snort 中文手册&lt;/span&gt;”，哈哈，随便做个广告啊。&lt;/span&gt; 
&lt;p style="margin:0cm 0cm 0pt"&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;&lt;/span&gt;  
&lt;p style="margin:0cm 0cm 0pt"&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝&lt;/span&gt; 
&lt;p style="margin:0cm 0cm 0pt"&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt;附（转过来的）：&lt;/span&gt;&lt;span style="font-size:9.5pt;color:black;font-family:宋体"&gt; 
&lt;p&gt;snort是一个轻量级的入侵检测系统 
&lt;p&gt;snort虽然功能强大，但是其代码极为简洁、短小，其源代码压缩包只有大约110KB。 
&lt;p&gt;snort的可移植性很好 
&lt;p&gt;snort的跨平台性能极佳，目前已经支持Linux,Solaris,BSD,IRIX,HP-UX,WinY2K等系统。 
&lt;p&gt;snort的功能非常强大 
&lt;p&gt;　　snort具有实时流量分析和日志IP网络数据包的能力。能够快速地检测网络攻击，及时地发出报警。snort的报警机制很丰富,例如：syslog、用户指定的文件、一个UNIX套接字，还有使用SAMBA协议向Windows客户程序发出WinPopup消息。利用XML插件，snort可以使用SNML(简单网络标记语言，simple network markup language)把日志存放到一个文件或者适时报警。 
&lt;p&gt;　　snort能够进行协议分析，内容的搜索/匹配。现在snort能够分析的协议有TCP、UDP和ICMP。将来，可能提供对ARP、ICRP、GRE、OSPF、RIP、IPX等协议的支持。它能够检测多种方式的攻击和探测，例如：缓冲区溢出、秘密端口扫描、CGI攻击、SMB探测、探测操作系统指纹特征的企图等等。 
&lt;p&gt;　　snort的日志格式既可以是tcpdump式的二进制格式，也可以解码成ASCII字符形式，更加便于用户尤其是新手检查。使用数据库输出插件，snort可以把日志记入数据库，当前支持的数据库包括：Postgresql、MySQL、任何unixODBC数据库,还有Oracle(对Oracle的支持目前处于测试阶段)。 
&lt;p&gt;　　使用TCP流插件(tcpstream)，snort可以对TCP包进行重组。snort能够对IP包的内容进行匹配，但是对于TCP攻击，如果攻击者使用一个程序，每次发送只有一个字节的TCP包，完全可以避开snort的模式匹配。而被攻击的主机的TCP协议栈会重组这些数据，将其送给在目标端口上监听的进程，从而使攻击包逃过snort的监视。使用TCP流插件，可以对TCP包进行缓冲，然后进行匹配，使snort具备了对付上面这种攻击的能力。 
&lt;p&gt;　　使用spade(Statistical Packet Anomaly Detection Engine)插件，snort能够报告非正常的可疑包，从而对端口扫描进行有效的检测。 
&lt;p&gt;　　snort还有很强的系统防护能力。使用FlexResp功能，snort能够主动断开恶意连接。 
&lt;p&gt;　　扩展性能较好，对于新的攻击威胁反应迅速 
&lt;p&gt;　　作为一个轻量级的网络入侵检测系统，snort有足够的扩展能力。它使用一种简单的规则描述语言。最基本的规则只是包含四个个域：处理动作、协议、方向、注意的端口。例如： 
&lt;p&gt;log tcp any any -&amp;gt; 10.1.1.0/24 79 。 
&lt;p&gt;　　还有一些功能选项可以组合使用，实现更为复杂的功能。将有一篇单独的文章讨论如何写snort规则。用户可以从&lt;a href="http://www.snort.org/"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;http://www.snort.org&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;得到其规则集。另外，著名的黑客Max Vision在&lt;a href="http://www.whitehats.com/"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;http://www.whitehats.com&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;提供在线的技术支持。 
&lt;p&gt;　　snort支持插件，可以使用具有特定功能的报告、检测子系统插件对其功能进行扩展。snort当前支持的插件包括：数据库日志输出插件、碎数据包检测插件、端口扫描检测插件、HTTP URI normalization插件、XML插件等。 
&lt;p&gt;　　snort的规则语言非常简单，能够对新的网络攻击做出很快的反应。发现新的攻击后，可以很快根据Bugtraq邮件列表，找出特征码，写出检测规则。因为其规则语言简单，所以很容易上手，节省人员的培训费用。 
&lt;p&gt;　　遵循公共通用许可证GPL 
&lt;p&gt;　　snort遵循GPL，所以任何企业、个人、组织都可以免费使用它作为自己的NIDS。&lt;/span&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=3114088440382333141&amp;page=RSS%3a+RHEL5+%e4%b8%8b+SNORT+%e5%ae%9e%e6%88%98&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=yizh1977.spaces.live.com&amp;amp;GT1=yizh1977"&gt;</description><comments>http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!165.entry#comment</comments><guid isPermaLink="true">http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!165.entry</guid><pubDate>Fri, 30 Nov 2007 18:04:30 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://yizh1977.spaces.live.com/blog/cns!2B3776EFF823A0D5!165/comments/feed.rss</wfw:commentRss><wfw:comment>http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!165.entry#comment</wfw:comment><dcterms:modified>2008-01-02T12:05:17Z</dcterms:modified></item><item><title>基于Snort的入侵检测系统</title><link>http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!158.entry</link><description>&lt;p&gt;用Snort,Apache,MySQL,PHP及ACID构建高级IDS&lt;br&gt;第一章              入侵检测系统及Snort介绍&lt;br&gt;在当今的企业应用环境中，安全是所有网络面临的大问题。黑客和入侵者已成功的入侵了一些大公司的网络及网站。目前已经存在一些保护网络架构及通信安全的方法，例如防火墙、虚拟专用网（VPN）、数据加密等。入侵检测是最近几年出现的相对较新的网络安全技术。利用入侵检测技术，我们可以从已知的攻击类型中发现是否有人正在试图攻击你的网络或者主机。利用入侵监测系统收集的信息，我们可以加固自己的系统，及用作其他合法用途。目前市场中也有很多弱点检测工具，包括商品化的和开放源码形式的，可以用来评估网络中存在的不同类型的安全漏洞。&lt;br&gt;一个全面的安全系统包括很多种工具：&lt;br&gt;l       防火墙：用来阻止进入及走出网络的信息流。防火墙在商业化产品和开放源码产品中都有很多。最著名的商业化防火墙产品有Checkpoint (http://www.checkpoint.com), Cisco (http://www.cisco.com)及Netscreen(http://www.netscreen.com)。最著名的开放源码防火墙是Netfilter/Iptables(http://www.netfilter.org)。&lt;br&gt;l       入侵检测系统（IDS）：用来发现是否有人正在侵入或者试图侵入你的网络。最著名的IDS是Snort,可以在http://www.snort.org下载。&lt;br&gt;l       弱点评估工具：用来发现并堵住网络中的安全漏洞。弱点评估工具收集的信息可以指导我们设置恰当的防火墙规则，以挡住恶意的互联网用户。现在有许多弱点评估工具，比如Nmap(http://www.nmap.org/)和Nessus(http://www.nessus.org/).&lt;br&gt;以上这些工具可以配合使用，交互信息。一些产品将这些功能捆绑在一起，形成一个完整的系统。&lt;br&gt;Snort是一个开放源码的网络入侵检测系统（NIDS）,可以免费得到。NIDS是用来检测网络上的信息流的入侵检测系统（IDS）。IDS也包括安装在特定的主机上并检测攻击目标是主机的行为的系统。IDS迄今为止还是一门相当新的技术，而Snort在IDS中处于领先的地位。&lt;br&gt;   本书由入侵检测介绍及相关概念入手，你将学习如何安装及管理Snort以及与Snort协同工作的其他产品。这些产品包括MySQL数据库（http://www.mysql.org）、入侵数据库分析管理工具ACID（http://www.cert.org/kb/acid）。Snort能够将日志数据（例如告警和其他日志消息）记录到数据库中。MySQL用作存储所有这些数据的数据库引擎。利用ACID及Apache (http://www.apache.com)Web服务器，我们可以分析这些数据。Snort、Apache、MySQL及ACID的共同协作，使我们可以将入侵检测数据记录到数据库，然后用web界面察看和分析这些数据。&lt;br&gt;   此书的组织结构使读者能够跟着随后的章节一步一步的建立一个完整的入侵检测系统。安装及整合各种工具的步骤将在如下的章节逐步介绍：&lt;br&gt;   第二章将介绍编译及安装Snort的基本知识。在这一章中，你将能够用基本安装及默认规则建立一个能够工作的IDS，同时能够建立可以记录入侵活动的日志文件。&lt;br&gt;   第三章介绍Snort规则的有关知识，Snort规则的组成及如何根据你的系统环境及需要建立自己的规则。建立良好的规则是构建入侵检测系统的关键，因此本章非常重要。本章同时也介绍Snort不同版本间规则的不同。&lt;br&gt;   第四章介绍input及output插件。插件与Snort一同编译，并用来调整检测引擎的输入和输出部分。Input插件用在实际检测过程发生前准备好捕获的数据包。Output插件用来将数据数据格式化，以用于特定的目的，例如一种output插件可以将输出的检测信息转换成SNMP trap信息，而另外一种output插件可以将信息转换成数据库信息。这一章将详细介绍如何配置及使用这些插件。&lt;br&gt;   第五章介绍MySQL数据库与Snort的共同工作。MySQL插件使Snort能够将日志数据记录到数据库以便随后的分析。在这一章中，你将了解如何在MySQL中建立数据库，如何配置数据库插件，以及将日志数据记录到数据库中。&lt;br&gt;   第六章介绍ACID,以及如何用ACID取得你在第五章建立的数据库中的信息，并用Apache服务器显示它。ACID一种提供丰富的数据分析能力的重要工具，你可以用它来取得攻击频率、攻击类别、察看这些攻击方法的相关资源等等。ACID用PHP脚本语言、图形显示库（GD library）和PHPLOT(一种用来绘制图表的工具)来工作，可以分析SQL中的数据并绘制图表。&lt;br&gt;   第七章主要介绍可以和Snort一起工作的其他一些有用的工具。&lt;br&gt;   在读完此书后，你将建立一个完整的，具有多个组件的系统，如图1-1所示。&lt;br&gt;   在图中你可以看到，Snort捕获并分析数据，然后用output插件将数据储存在MySQL数据库中。Apache服务器在ACID,PHP、GD library及PHP包的帮助下使连接到服务器的用户能够通过浏览器显示数据。用户可以在网页上应用不同的查询来分析、备份、删除数据或者显示图表。&lt;br&gt;   基本上，你可以将Snort、MySQL、Apache、PHP、ACID、GD库以及ACID都安装到一台计算机上，而实际上在读完本书后，你可以建立一个类似于如图1-2所示得更加贴近实际应用的系统。&lt;br&gt;   在企业中，人们通常使用多个Snort探测器，在每个路由器或者防火墙后面都放置探测器。在这种情况下，你可以用一个集中的数据库来收集所有探测器的信息，并在这个数据库服务器上运行Apache Web服务器，如图1-3所示。&lt;br&gt;1．              1 什么是入侵检测？&lt;br&gt;入侵检测是指用来检测针对网络及主机的可疑活动的一系列技术和方法。入侵检测系统基本可以分为两大类：基于特征的入侵检测系统和异常行为检测系统。入侵者常具有用软件可以检测到的特征，如病毒。入侵检测系统将检测包含已知入侵行为特征或者异常于IP协议的数据包。基于一系列的特征及规则，入侵检测系统能够发现并记录可疑行为并产生告警。基于异常的入侵检测系统通常是分析数据包中协议头部的异常，在某些情况下这种方式要比基于特征的入侵检测系统要更好一些。通常情况下，入侵检测系统在网络上捕获数据包与规则比对或者检测其中的异常。Snort基本上是一个基于规则的IDS,但是input插件可以分析协议头部异常。&lt;br&gt;   Snort的规则存储在文本文件中，并可以用文本编辑器修改。规则以类别分组。不同类别的规则存储在不同的文件中。最后，这些文件被一个叫做snort.conf的主配置文件引用。Snort在启动时读取这些规则，并建立内部数据结构或链表以用这些规则来捕获数据。发现入侵特征并利用规则捕获它们是一项具有技巧性的工作，因为在实时检测中你应用越多的规则，那么你将需要越多的处理能力，所以用尽量少的规则来捕获尽量多的特征是非常重要的。Snort已经预先定义了许多入侵检测规则，并且你可以自由添加自定义的规则。同时，你也可以移除一些内建规则以防止错误告警。&lt;br&gt;1．1．1 一些定义&lt;br&gt;   在详细了解入侵检测及Snort之前，你需要了解一些网络安全相关的定义，这些定义将在这本书的随后章节中重复应用。对这些名词的基本了解对于理解其他更加复杂的安全概念是非常必要的。&lt;br&gt;1．1．1．1          IDS&lt;br&gt;入侵检测系统或IDS是一种用来检测入侵行为的软件、硬件或者两者的结合。Snort是大众可以获得的开放源码的IDS。IDS的实际能力依赖于组件的复杂度及精巧性。实体的IDS是硬件和软件的结合，很多公司可以提供及决方案。如前面提到的，IDS可以采用特征分析技术、异常检测技术，或者两者同时应用。&lt;br&gt;   1．1．1．2 网络IDS或NIDS&lt;br&gt;   NIDS是用来捕获在网络介质上传播的数据并与特征数据库比对的入侵检测系统。跟据数据包与特征数据库的匹配情况，IDS产生告警或者将日志记录到文件或数据库中。Snort主要是作为NIDS来使用的。&lt;br&gt;1．1．1．3 主机IDS或HIDS&lt;br&gt;   面向主机的入侵检测系统或称HIDS作为一个代理安装在一台主机上，这种入侵检测系统可以分析系统及应用程序日志来检测入侵行为。其中一些HIDS是被动状态的，只有当某些事情发生了才会通知你，另外一些是主动状态的，可以嗅探网络中针对某一主机的通信状况并实时产生告警。&lt;br&gt;1．1．1．4 特征&lt;br&gt;   特征是数据包中包含信息的特点。特征用来检测一种或多种攻击行为。例如，目标是你的web服务的包中如果出现“scripts/iisadmin”，可能意味着一个入侵尝试。&lt;br&gt;   根据攻击行为本质的不同，特征数据可能会出现在数据包中的不同位置。例如，你可能会在IP包头、传输层头(TCP或UDP头)及/或应用层头或载荷中发现攻击特征。你将在本书的后面更多的了解攻击特征。&lt;br&gt;   通常IDS依靠特征来发现入侵行为。在发现新的入侵特征时，某些商业化的IDS需要从厂商那里得到更新的特征库。另外一些IDS,比如Snort,你可以自己更新特征库。&lt;br&gt;1．1．1．5 告警&lt;br&gt;   告警是任何一种对入侵行为的通知。当IDS检测到入侵者，它将用告警来通知安全管理员。告警的形式可以使弹出窗口、终端显示及发送e-mail等等。告警同时也被存储到日志文件或者数据库中，以便供安全专家察看。在本书的后面，你将得到关于告警的详细信息。&lt;br&gt;   Snort的告警由output插件控制，并可以产生多种形式的报警。Snort也可以将同一个告警发送到不同的目标，例如，将告警发送到数据库的同时，产生SNMP trap信息。一些插件可以修改防火墙配置，使入侵者在防火墙或者路由器上被控制。&lt;br&gt;1．1．1．6 日志&lt;br&gt;   日志信息通常存放在文件中。默认情况下，Snort将这些信息存放在/var/log/snort目录下，但是也可以在启动Snort时用命令行开关来改变这个目录。日志信息可以存储为文本格式或者二进制格式，二进制格式的文件可以供Snort或者Tcpdump随后访问，现在也有一个叫做Barnyard的新工具可以分析Snort产生的二进制日志文件。将日志存放为二进制文件可以有更高的效率，因为这种格式开销相对较低。将Snort应用在高速网络环境中，将日志存放为二进制文件是非常必要的。&lt;br&gt;1．1．1．7 误告警&lt;br&gt;   误告警是错误的将非入侵行为报告为入侵行为的告警。例如，内部主机的错误配置有时会产生触发规则，从而产生误告警。某些路由器，例如Linksys家用路由器，会产生一些信息，导致UpnP相关的告警。为了避免误告警，你要修改和调试默认规则，在某些情况下，你也许需要停止一些规则的使用，以避免误告警。&lt;br&gt;1．1．1．8 探测器&lt;br&gt;   运行入侵检测系统的机器也叫做探测器，因为它用来“探测”网络中的活动。在本书的后面部分，如果用到探测器这个词，那么它是指运行Snort的计算机或者其他设备。&lt;br&gt;1．1．2        IDS应该放在网络中的什么位置？&lt;br&gt;根据你的网络拓扑结构的不同，你应该在一个或多个位置放置IDS。IDS放置的位置也要取决于你想检测的入侵行为的种类：内部入侵、外部入侵，或者两个都要检测。例如，如果你想仅仅检测外部入侵活动，并且你只有一个路由器接到Internet，那么放置IDS的最佳位置也许紧靠着路由器或者防火墙的内部网络接口。如果你有多条接入Internet的借口，也许你希望在每个入口处放置一台IDS。有时你也希望能够检测来自内部的威胁，那么可以在每个网段都放置一台IDS。&lt;br&gt;在很多情况下，你并不需要在所有网段都实施入侵检测，你可以仅仅在敏感区域放置IDS。要知道，越多的IDS就意味着越多的工作量和维护费用。因此IDS的部署要取决于你的安全策略，也就是你想防范什么样的入侵。图1-4表示通常放置IDS的典型位置。&lt;br&gt;正如你在图1-4中看到的那样，通常你应该在每个路由器和防火墙的后面放置IDS,在你的网络中包含非军事化区(DMZ)的情况下，在DMZ中也可以放置IDS。要注意的是，DMZ中的IDS告警策略不应像专用网络中那样严格。&lt;br&gt;1．1．3 蜜罐(Honey Pots)&lt;br&gt;   蜜罐是一种以故意暴露已知弱点来愚弄黑客的系统。当黑客发现蜜罐时，通常会在它上面耗费一些时间，在此期间，你可以记录黑客的行为，从中找出黑客的活动情况和所使用的技术。一旦你了解了这些技术，你可以利用你得到的信息来加固你真正的服务器。&lt;br&gt;   现在有很多种构建和放置蜜罐的方法。在蜜罐上应该运行一些公开的服务，这些服务包括Telnet服务(端口23)，HTTP服务（端口80），FTP服务（端口21）等等。你应该将蜜罐放在你紧靠你应用服务器的某个位置，这样黑客容易错误的将蜜罐当成真正的应用服务器。例如，如果你的应用服务器的IP地址势192.168.10.21和192.168.10.23，那么你可以将你的蜜罐的IP地址设为192.168.10.22，同时设置你的防火墙和路由器，使黑客对服务器某些端口的访问重定向到蜜罐上面，那么入侵者就会把蜜罐当成是真正的服务器。你应当仔细的考虑告警产生机制，以使你的蜜罐受到威胁的时候可以立刻得到信息。将日志存放在其他机器上是个好主意，这样即使黑客侵入了蜜罐，也无法删除日志文件。&lt;br&gt;   那么什么时候你应该安装蜜罐呢？那要根据你的情况来决定：&lt;br&gt;n       如果你的机构有足够的资源用来追踪黑客，那么你应该建立一个蜜罐。所谓资源包括硬件以及人力。如果你没有足够的资源，那么安置蜜罐就没有什么必要，要知道获取你不会用到的信息是没有什么意义的。&lt;br&gt;n       仅仅当你可以以某种方式来用蜜罐取得的信息的时候，蜜罐才是有用的。&lt;br&gt;n       如果你想收集有关行为的证据来起诉黑客，那么你也可以用到蜜罐。&lt;br&gt;理想的情况下，蜜罐应该看起来像一个真实的系统，你可以制作一些假的数据文件，假的账户等等，使黑客信以为真，这样才能使黑客在上面逗留足够长的时间，从而你可以记录更多的活动。&lt;br&gt;   你可以在蜜罐项目网站http://project.honeynet.org/上面取得更多的信息，可以找到一些你感兴趣的资料，是你能够对蜜罐有进一步的了解。你也可以去另外一个蜜罐网站http://www.citi.umich.edu/u/provos/honeyd/了解他们的开放源码的密罐的相关信息。其他一些可以取得更多信息的地方是：&lt;br&gt;南佛罗里达蜜罐项目网站：http://www.sfhn.net&lt;br&gt;相关白皮书：http://www.sfhn.net/whites/howto.html&lt;br&gt;1．1．4 安全区域和信任等级&lt;br&gt;   一段时间以前，人们将网络划分为两大类区域：安全区域和非安全区域。某些时候这种划分也就意味着网络是在路由器或防火墙的内部或者外部。现在典型的网络通常根据不同的安全策略等级和信任等级划分为多个区域。例如，公司的财务部门拥有非常高的安全等级，在这个区域中仅仅允许对少数服务的操作，不允许Internet服务；而在DMZ或称非军事化区中，网络是向Internet开放的，此区域的信任等级与财务部门迥然不同。&lt;br&gt;   根据信任等级和安全策略的不同，你应该在不同的区域中应用不同的入侵检测规则和策略。对安全等级要求不同的网络在物理上是分离的。你可以在对安全要求不同的每个区域都安装一套具有不同规则的IDS来检测可疑的网络活动。例如，在财务部门的网络中没有web服务器，指向80端口的数据包将被纪录为入侵行为，而这样的规则不能用在DMZ中，因为DMZ中的web服务器是对每个人开放的。&lt;br&gt;1．2                       IDS 策略&lt;br&gt;在你在网络中安装IDS之前，你必须有一个能够检测入侵者并做出相应动作的策略。一个策略必须能够指示一系列的规则以及这些规则如何应用。IDS策略应当包含以下的内容，并且你可以根据你的要求添加更多的内容：&lt;br&gt;谁来察看IDS信息？IDS提供给你对入侵行为产生告警信息的机制。告警系统或者是简单的文本文件形式，或者更加复杂，也许集成到类似于 HpOpenView这样的网管软件或MySQL这样的数据库中。在你的系统中需要有人负责来监视入侵行为和制定策略。入侵行为可以通过弹出窗口或web 页面实时监视。在这种情况下，操作者必须要了解告警的意义所在以及告警信息中事件的安全等级。&lt;br&gt;谁来管理IDS，维护日志等等？对于所有的系统，都需要建立一个日常维护体制，IDS也一样。&lt;br&gt;谁来处理安全事件？如果没有安全事件处理机制，也就根本没有必要安装IDS。根据安全事件的安全等级的需要，某些情况可能需要政府机构的介入。&lt;br&gt;事件处理程序是什么样的？策略应当规定一些事件响应机制，根据涉及安全等级的高低向不同的管理层汇报。&lt;br&gt;例行报告：总结前一天、上一周、或者上一个月所发生的相关事情。&lt;br&gt;特征库的升级：黑客总是不断的创造新的攻击方法。如果IDS了解攻击的特征，就能够检测到攻击。Snort规则用攻击特征库来检测攻击。因为攻击的特征经常在改变，你也必须为你的IDS规则更新特征库。你可以定期直接在Snort网站上取得特征库的更新，也可以在一种新的攻击方式被发现时自己更新。&lt;br&gt;每个项目都需要文档系统。IDS策略应当描述当攻击被检测到时应当记录什么样的文档。文档可以包括简单的日志或者对入侵行为的完整纪录。你也可以采用多种方式来记录数据。例行报告也属于文档的组成部分。&lt;br&gt;基于你的IDS策略，你可以清楚的知道你的网络到底需要多少IDS探测器和其他资源，更精确的计算IDS的成本和费用。&lt;br&gt;1．3                       Snort的部件&lt;br&gt;Snort在逻辑上可以分成多个部件，这些部件共同工作，来检测特定的功绩，并产生符合特定要求的输出格式。一个基于Snort的IDS包含下面的主要部件：&lt;br&gt;l       包解码器&lt;br&gt;l       预处理器&lt;br&gt;l       探测引擎&lt;br&gt;l       日志和告警系统&lt;br&gt;l       输出模块&lt;br&gt;图1-5显示了这些部件的关系。任何来自Internet的包到了包解码器，然后被送到输出模块，在这里或者被丢弃，或者产生日志或告警。&lt;br&gt;   在这个部分中，我们将简要介绍这些部件。在你通读这本书并建立一些规则后，你将对这些部件以及它们之间怎样相互作用更加熟悉。&lt;br&gt;1．3．1 包解码器&lt;br&gt;   包解码器从不同的网络接口中获取包并准备预处理或者送到探测引擎。网络接口可能是以太网、SLIP、PPP等等。&lt;br&gt;1．3．2 预处理器&lt;br&gt;   预处理器是Snort在探测引擎做出一些操作来发现数据包是否用来入侵之前排列或者修改数据包的组件或者插件。一些预处理器也可以通过发现数据包头部异常来执行一些探测工作，并产生告警。预处理器的工作对于任何IDS的探测引擎依据规则分析数据都是非常重要的。黑客有很多愚弄IDS的技术。比如，你建立这样一条规则，用来在 HTTP包中发现包含“scripts/iisadmin”的入侵特征，如果你将字符匹配过于严格的限制，那么黑客只需要做一些细小的变通，就能很轻易的耍弄你。例如：&lt;br&gt;   “scripts/./iisadmin”&lt;br&gt;   “scripts/examples/../iisadmin”&lt;br&gt;   “scripts/.\iisadmin”&lt;br&gt;   为了使问题复杂化，黑客也会在字符中嵌入16位URI字符或者Unicode字符，这对web服务器来说是同样合法的，要注意web服务器能够理解所有这些字符，并将它们处理成为类似于“scripts/iisadmin”这样的字符。如果IDS严格匹配某一字符串，就可能不会探测到这种类型的攻击。预处理器可以将字符重新排列，以使IDS能够探测得到。&lt;br&gt;   预处理器也或来包分片的组装。当一个大的数据流传向主机的时候，通常数据包会被分割。例如，以太网中默认的最大数据包大小是1500字节，这个数值由网络接口的MTU(Maximus Transfer Unit)值来确定。这就意味着如果你发送的数据如果大于1500字节，它将会被分割成多个数据包，以使每个数据包的大小都小于或等于1500字节。接收方系统能够将这些小的分片重新组装，还原成原始的数据包。在IDS上，在可以对数据包进行特征分析之前，也需要重新组装数据包。例如，可能入侵特征的一般在一个数据包分片上，而另外一半在别的分片上面。为了使探测引擎能够准确的分析特征，就需要组装所有的分片。黑客也用数据分片来对抗入侵检测系统。&lt;br&gt;   预处理器用来对抗这些攻击。Snort的预处理器能够组装数据分片，解码HTTP URI,重新组装TCP流等等。这些功能是IDS中非常重要的部分。&lt;br&gt;1．3．3 探测引擎&lt;br&gt;   探测引擎是Snort中最重要的部分，它的作用是探测数据包中是否包含着入侵行为。探测引擎通过Snort规则来达到目的。规则被读入到内部的数据结构或者链表中，并与所有的数据包比对。如果一个数据包与某一规则匹配，就会有相应的动作（记录日志或告警等）产生，否则数据包就会被丢弃。&lt;br&gt;探测引擎是Snort中时间相关的组件，根据你的机器的处理能力和你所定义的规则的多少，探测引擎会消耗不同的时间来对不同的数据包做出响应。在Snort工作在NIDS模式的时候，如果网络中数据流量过大，有时可能会因为来不及响应而丢弃一些包。探测引擎的负载取决于以下因素：&lt;br&gt;l       规则的数量&lt;br&gt;l       运行Snort的机器的处理能力&lt;br&gt;l       运行Snort的机器的内部总线速度&lt;br&gt;l       网络的负载&lt;br&gt;当你在设计NIDS的时候，你应该考虑所有的相关因素。&lt;br&gt;你需要了解探测系统可以剖析数据包并把规则应用在高的不同部分，这些部分可能是：&lt;br&gt;l       包的IP头&lt;br&gt;l       包的传输层头，包括TCP、UDP或其他传输层协议头，也可以是ICMP头。&lt;br&gt;l       应用层头。应用层头包括DNS头，FTP头，SNMP头，SMTP头等等还有很多。有时你可以用一些间接的方法来获得应用头信息，比如位偏移等等。&lt;br&gt;l       包载荷。这意味着你可以建立这样一种规则，用探测引擎来寻找传输的数据中的字符。&lt;br&gt;在不同版本的Snort中，探测引擎由不同的工作方式。在所有1.x版的Snort中，一旦探测引擎将数据包匹配到某个规则的时候，就会停止进一步的过程，然后根据规则产生告警或者记录日志，这就意味着即使如果包匹配多条规则，仅仅第一个规则被应用，并不再进行其他的匹配，这样做有好处，但是除了下面的情况：如果包匹配的第一个规则是低优先级的，就只产生低优先级的告警，即使这个包也匹配高优先级的后面其他规则。这个问题在第二版的Snort中得到了修正：包先对所有的规则进行匹配，然后再产生告警，在对所有的规则进行匹配之后，选择最高优先级的规则告警。&lt;br&gt;第2版Snort的探测引擎是完全重写的，从而比先前版本的快了许多。在写这本书的时候，Snort 2.0还没有开始发行，早些时候的测试显示新的引擎比老的引擎要快将近18倍。&lt;br&gt;1．3．4 日志和告警系统&lt;br&gt;   依据在包中所找到的东西，一个包可以用来记录行为或者产生告警。日志可以存为简单的文本文件、tcpdump格式文件或者其他的形式。在默认情况下，所有的日志文件都存放在/var/log/snort目录中。你可以在命令行中用-l选项来修改日志和告警存放的位置。更多的命令行选项将在下一章中讨论。这些选项可以用来修改日志和告警的类型和细节等等。&lt;br&gt;1．3．5 输出模块&lt;br&gt;   输出模块或插件可以根据你指定的保存日志和告警系统产生的输出信息的方式来执行不同的动作。基本上这些模块用来控制日志和告警系统产生的输出信息的格式。根据配置，输出模块可以做下列事情：&lt;br&gt;l       简单的在/var/log/snort/alerts文件或其他文件中记录日志&lt;br&gt;l       发送SNMP trap&lt;br&gt;l       将日志记录到类似于MySQL或Oracle的数据库中。你将在这本书的后面了解更多的关于使用MySQL的信息&lt;br&gt;l       产生XML输出&lt;br&gt;l       修改路由其或者防火墙的配置&lt;br&gt;l       向Windows主机发送SMB消息&lt;br&gt;其他一些工具可以用来发送如e-mail信息或者web页面浏览等格式的告警，在后面的章节中你将了解更多的信息。表1-1是IDS各种部件的汇总。&lt;br&gt;表1-1 IDS的部件&lt;br&gt;名称&lt;br&gt;描述&lt;br&gt;包解码器&lt;br&gt;为处理过程准备包&lt;br&gt;预处理器或输入插件&lt;br&gt;分析协议头部，规格化头部，探测头部异常，包分片组装，TCP流组装&lt;br&gt;探测引擎&lt;br&gt;将包与规则比对&lt;br&gt;日志和告警系统&lt;br&gt;产生告警和日志&lt;br&gt;输出模块&lt;br&gt;将告警和日志输出到最终目标&lt;br&gt;1．4 关于交换机&lt;br&gt;根据你用的交换机的不同，你会有多种方式将Snort的机器安装在交换机端口上。一些交换机，比如CISCO,允许你复制所有的通信到你连接Snort机器的那个端口上，这样的端口通常指的是Spanning端口。安装Snort的最佳位置是直接连到路由其或者防火墙后面，这样Snort可以在数据进入交换机或HUB之前捕获所有的Internet数据流。例如，你的防火墙有连接Internet的T1线路，并用交换机连接内部网络，典型的连接方案如图1-6所示：&lt;br&gt;如果你的交换机有Spanning端口，你可以像图1-7所示的那样将IDS及器连接到spanning端口上，这样IDS可以看到所有的与Internet的通信以及内部通信。&lt;br&gt;你也可以将IDS连接到防火墙与交换之间的HUB上，这样所有的进入和流出的通信对于IDS也是可见的，此方案如图1-8所示。&lt;br&gt;但是要注意，如果IDS按图1-8安置，那么IDS将不能得到内部通信的数据包，只能来见与Internet之间的通信。这种方案对于内部网络是可信的，而预想的攻击来自外部是非常有用的。&lt;br&gt;1．5 跟踪TCP数据流&lt;br&gt;Snort新增加了一种叫做Stream4的预处理器，这种预处理器能够同时处理数千并发的数据流。关于它的配置将在第四章中讨论。它可以重新组装TCP数据流，并进行状态检测。这就意味着你可以组装一个特定的TCP会话，并从利用多个TCP包进行攻击的方式中找出异常。你也可以查找流向或（和）流出某个服务器端口的数据包。&lt;br&gt;1．6 Snort支持的平台&lt;br&gt;   Snort支持多种硬件平台和操作系统。目前Snort支持下列操作系统：&lt;br&gt;• Linux&lt;br&gt;• OpenBSD&lt;br&gt;• NetBSD&lt;br&gt;• Solaris (Sparc或者i386)&lt;br&gt;• HP-UX&lt;br&gt;• AIX&lt;br&gt;• IRIX&lt;br&gt;• MacOS&lt;br&gt;• Windows&lt;br&gt;你可以到Snort的网站http://www.snort.org查询Snort当前支持的平台的列表。&lt;br&gt;1．7 如何保护IDS自身&lt;br&gt;   有一个关键问题是，如何保护运行IDS的系统？如果IDS本身的安全受到了威胁，你收到的告警可能是错误的，也许就根本收不到告警。入侵者也许会在做出实际的攻击之间先让IDS失效。有许多方式来保护你的系统，从通用的建议到一些复杂的方法，下面会提到一些方法：&lt;br&gt;l       首先你可以做的事情是不要再你运行IDS探测器的机器上运行任何服务。网络服务是用来探寻系统最普遍的方式。&lt;br&gt;l       新的威胁出现后，厂商会发布相应的补丁，只是一个连续不断，永无休止的过程。你的IDS应该安装从厂商那里得到的最新的补丁。比如，如果你的Snort在Window机器上运行，你应该安装所有微软发布的最新的安全补丁。&lt;br&gt;l       配置你的IDS机器，使其不会对ping（ICMP echo）做出回应。&lt;br&gt;l       如果你在Linux机器上运行IDS，请用netfileter/iptables来阻止任何不必要的数据，这时Snort仍然可以看到所有的数据包。&lt;br&gt;l       如果你的IDS机器仅仅用来做入侵检测，那么除非完全有必要，不要在上面进行任何其他的活动以及设立其他用户账号。&lt;br&gt;除了这些通常的方法之外，Snort也可以在一些特殊方法下应用。下面有两种特别的技术来防止Snort遭到攻击。&lt;br&gt;1．7．1 在隐秘端口(Stealth Interface)上运行Snort&lt;br&gt;你可以在隐秘端口上运行Snort,这种端口仅仅监听进入数据包而不向外部发送任何的数据包。在隐秘端口上我们用一种特殊的电缆，在你运行Snort的主机上，将端口的1针和2针短路，3针和6针连到对端。你可以到Snort的FAQ页面http//www.snort.org/docs/faq.html寻找这种方法的更多信息。&lt;br&gt;1．7．2 在没有IP地址的接口上运行Snort&lt;br&gt;你也可以在一个没有配置IP地址的接口上运行Snort。例如在Linux机器上，你可以用“ifconfig eth0 up”这样的命令来激活没有配置IP地址的接口eth0。这种方法的好处是，因为Snort主机没有IP地址，因此没有人可以访问它。你可以在eth1上配置IP地址用来访问这个探测器。见图1-9。&lt;br&gt;   在Windows系统上，你可以用一个不绑定TCP/IP协议的接口，这样就不会在这个接口上出现IP地址了。不要忘记同时也要禁用其他协议和服务。在某些情况下，当接口不配置IP地址的时候，你会遇到wincap(Windows用来捕获包的库)不可用的提示，如果遇到这样的情况，你可以用下面的方法：&lt;br&gt;l       在你想做隐秘端口的网络接口上配置TCP/IP协议，同时禁用其他一切协议和服务。&lt;br&gt;l       启用DHCP客户端。&lt;br&gt;l       禁用DHCP服务器。&lt;br&gt;这样就会使网络接口没有IP地址，网络接口仍然可以绑定TCP/IP协议。&lt;br&gt;1．8 相关资源&lt;br&gt;1. 入侵检测 FAQ ： http://www.sans.org/newlook/resources/IDFAQ/&lt;br&gt;ID_FAQ.htm&lt;br&gt;2. 蜜罐项目：http://project.honeynet.org/&lt;br&gt;3. Snort FAQ : http://www.snort.org/docs/faq.html&lt;br&gt;4. Honeyd 蜜罐： http://www.citi.umich.edu/u/provos/honeyd/&lt;br&gt;5. Winpcap ： http://winpcap.polito.it/&lt;br&gt;6. Cisco systems ： http://www.cisco.com&lt;br&gt;7. Checkpoint 网站： http://www.checkpoint.com&lt;br&gt;8. Netscreen ：http://www.netscreen.com&lt;br&gt;9. Netfilter ： http://www.netfilter.org&lt;br&gt;10. Snort ：http://www.snort.org&lt;br&gt;11. Nmap工具： http://www.nmap.org&lt;br&gt;12. Nessus ： http://www.nessus.org&lt;br&gt;13. MySQL 数据库：http://www.mysql.org&lt;br&gt;14. ACID： http://www.cert.org/kb/acid&lt;br&gt;15. Apache web 服务器： http://www.apache.org&lt;br&gt;第二章              安装Snort并开始初步工作&lt;br&gt;Snort可以仅仅安装为守护进程或者一个包括很多其他工具的完整系统。如果你仅仅安装Snort, 你可以得到入侵数据的文本文件或二进制文件，然后可以用文本编辑器或其它类似于Barnyard的工具察看，本书的后面将对此做出描述。在简单安装的情况下，你也可以让告警信息以SNMP trap的形式发送到类似于HP OpenView或者OpenNMS之类的网管系统上。告警信息也可以以SMB弹出窗口的形式发送到Windows机器上。如果你与其它工具一起安装，你可以做一些更加复杂的操作，比如将Snort数据发送到数据库并通过Web界面来分析。分析工具能够让你对捕获的数据有更加直观的认识，而不用对晦涩的日志文件耗费大量时间。&lt;br&gt;其它一些可以用到的工具列在下面，它们中的没有特都有特定的任务。一个综合的Snort系统用这些工具来提供具有后台数据库Web用户界面。&lt;br&gt;MySQL用来Snort纪录告警日志。也可以用类似于Oracle的数据库，但在Snort环境中MySQL更加常用。事实上，Snort可以用任何ODBC兼容的数据库。&lt;br&gt;l       Apache用作web服务器&lt;br&gt;l       PHP用作web服务器和MySQL数据库之间的接口。&lt;br&gt;l       ACID是用来Web界面来分析Snort数据的PHP软件包。&lt;br&gt;l       GD库被ACID用来生成图表&lt;br&gt;l       PHPLOT用来在ACID的web界面将数据表现为图表形式。为了是PHPLOT工作，GD库必须要正确配置。&lt;br&gt;l       ADODB被ACID用来连接MySQL数据库。&lt;br&gt;2．1 Snort 安装方案&lt;br&gt;Snort的安装方式要取决于运行环境，下面列举了一些典型的安装方案以供参考，你可以根据你的网络情况进行选择。&lt;br&gt;2．1．1 测试安装&lt;br&gt;简单安装只包括一个Snort探测器。Snort将数据记录到文本文件中。日志文件供Snort管理员随后察看。由于这种方式在实际应用中分析日志的成本比较高因此仅适合测试环境。要用这种方式安装Snort，你可以在http://www.snort.org取得编译好的版本。对RedHat Linux来说，你可以下载RPM包。对Windows系统，你可以下载可执行文件安装到你的系统上。&lt;br&gt;2．1．2 安装单探测器的应用IDS&lt;br&gt;单探测器的Snort可应用安装适合只有一条Internet线路的小型网络。将探测器放在路由器或者防火墙的后面，以检测进入系统的入侵者。不过要是你对所有的Internet流量感兴趣，你也可以将传感器放在防火墙的外面。&lt;br&gt;在这种安装方式中，你可以从Snort网站http://www.snort.org下载编译好的版本，也可以下载源代码根据自己的要求编译，以取得自己需要的特征，这种要求在编译好的版本中是做不到的。Snort的编译步骤将在本章详细讨论。&lt;br&gt;在应用系统安装中，也可以让Snort实现自动启动和关闭，这样Snort在系统启动是可以自动启动。如果你在Linux中安装编译好的版本，RPM包会帮你做到这一点。在Windows系统中，你可以将Snort作为服务来启动或者放在启动组的批处理文件中。Windows相关的问题将在第8章涉及。日志将纪录为文本文件或者二进制文件，并用类似于SnortSnarf的工具分析数据。SnortSnarf将在第6章中详细讨论。&lt;br&gt;2．1．3 单探测器与网管系统的整合&lt;br&gt;在应用系统中，你可以将Snort配置成向网管系统发送trap。在企业应用中，有很多种网管系统在应用。最常见的商业网管系统公司有惠普、IBM、Computer Associates等。&lt;br&gt;Snort利用SNMP trap整合到网管系统中。当你看完本章的Snort编译步骤后，就会了解Snort是怎样提供SNMP能力的。第4章将介绍更多的关于配置SNMP trap目标、community名称等更多的信息。&lt;br&gt;   2．1．4 带有数据库和web界面的单探测器&lt;br&gt;   Snort最通常的用法是与数据库的整合。数据库用来记录日志，并可以随后通过web界面访问。这种安装的典型设置包含3个基本的部件：&lt;br&gt;   Snort 探测器&lt;br&gt;   数据库服务器&lt;br&gt;   web服务器&lt;br&gt;   Snort将日志记录到数据库中，你可以通过连接到它的web浏览器察看这些数据。这种方案可以参见第1章的图1-1。所有3个部件也可以安装在同一个系统上，如第1章的图1-2所示。&lt;br&gt;   Snort可以用不同类型的数据库，如MySQL,PostgresSQL,Oracle,Microsoft SQL Server和其他ODBC兼容的数据库。PHP用来在数据库中获取数据，并产生页面。&lt;br&gt;   这样的安装提供给你一个易于管理的功能全面的IDS，并具有友好的用户界面。为了使你能够用数据库记录日志，你必须给Snort提供数据库的用户名称、密码、数据库名称和数据库服务器的地址。在单探测器方案中，如果数据库服务器就安装在运行传感器的机器上，你可以用“localhost”作为主机名。你在编译Snort时就要选择记录数据库的功能，这一点将在本章的后面详细描述。Snort使用数据库的配置将在第4、5、6章讨论。&lt;br&gt;2．1．5 用集中数据库管理多个Snort探测器&lt;br&gt;在分布式环境中，你可能需要在多个位置安装Snort探测器。管理所有这些探测器并分别分析它们收集的数据是一项艰难的任务。在企业应用中，有一些方法可以将Snort设置和安装成分布式的IDS。&lt;br&gt;其中一种方法是将多个探测器连接到同一个中心数据库，如图1-3所示。所有探测器产生的数据都存储在这个数据库中。同时运行一个类似于Apache的web服务器。然后用户可以用web浏览器察看这些数据并加以分析。&lt;br&gt;但要了解这种配置存在一些实际问题：&lt;br&gt;l       所有的探测器在启动Snort的时候必须能够访问到数据库，如果不能，Snort就终止进程。&lt;br&gt;l       数据库必须保证让探测器所有的时间都能访问，否则，数据将丢失。&lt;br&gt;l       如果探测器和数据库服务器之间有防火墙，你要打开相应的端口，有时这样做会与防火墙的安全策略不匹配或者违背安全策略。&lt;br&gt;在探测器不能直接访问数据库服务器的时候，有一些变通的方法。探测器可以配置为将文件存储在本地，然后用类似于SCP的工具定期将这些文件上传到中央数据库服务器。SCP用SSH协议来进行安全文件传输的工具。防火墙管理员要放行SSH端口的通信。你可以用Snort本身，Barnyard或其他一些工具从日志文件中提取数据并将它们放到数据库中，你可以在以后用web界面来察看这些数据。这种方式的唯一问题是数据库中的数据并非严格的“实时”数据。延迟的大小要看你用SCP上传数据到中心数据库服务器的频率。这种方式如图2-1所示。&lt;br&gt;要注意，中心数据库服务器必须要运行SSH服务器以能够用SCP来上传数据。&lt;br&gt;如第一章中提到的那样，这本书的最终目的是帮助你安装Snort并让所有的软件包可以协同工作。当你通读此书后，你将了解这些部件之间是如何相互作用，共同工作形成一个完整的入侵检测系统的。本书中涉及的这些软件都可以这本书的网站http://authors.phpktr.com/rhman/ 中获得源代码。你也可以发现这个网站上的一些脚本可以帮助你轻松的在一个新系统上安装这些软件包。事实上，用这本书提到的这个网站上的一些脚本，你可以以 root身份用仅仅几个命令行就建立一个可用的IDS。如果你用的Snort的版本比本书涉及的要新，你可以在http://www.argusnetsec.com/downloads下载支持新版本Snort的最新版的脚本。&lt;br&gt;这本书将详细介绍这些部件在RedHat Linux 7.3机器上的安装，但是在其他版本的Linux或者其他平台上的过程与之类似。为了方便本书介绍，所有的部件都安装在/opt目录下面。但是如果用编译好的软件包，安装位置可能有所不同。当你用本书上或者从本书的网站取得的脚本，文件将被安装在这个目录下面。在本章中，你将了解如何将Snort作为一个独立的产品安装，在后面的章节中，将介绍其他一些部件。&lt;br&gt;你可以得到二进制形式或者源代码形式的Snort。对于大多数安装来说，编译好的二进制软件包是非常好的。如前面提及的，如果你想为Snort定制一些特性，你需要下载源代码版的Snort自行编译。例如，有些人喜欢SMB告警，但另外一些人可能认为它们不安全。如果你需要不支持SMB告警的Snort,那么你需要自己编译它。这对于一些如SNMP trap、MySQL等其他特性也是一样的。另外一个自己编译Snort理由是你需要了解正在开发中的代码。本章将指导你一步一步的安装Snort。&lt;br&gt;基本的安装过程是非常简单的，而且Snort已经提供给你包含大多数已知攻击特征的预定义的规则。当然，自定义安装还是要费一些工夫的。&lt;br&gt;2．2 安装Snort&lt;br&gt;   在这一部分，你将了解如何安装编译好的Snort和如何自己编译和安装。安装编译好的RPM包非常简单，仅需要几步。但是如果你的Snort是源代码形式的，是需要一些时间来了解和安装的。&lt;br&gt;2．2．1 用RPM包安装Snort&lt;br&gt;   用RPM包安装Snort包括下面的步骤。&lt;br&gt;   2．2．1．1 下载&lt;br&gt;   从Snort的网站（http://www.snort.org）下载最新版的Snort。在写本书的时候，最新版的二进制文件是snort-1.9.0-1snort.i386.rpm。&lt;br&gt;   2．2．1．2 安装&lt;br&gt;   运行下面的命令来安装Snort的二进制文件：&lt;br&gt;rpm --install snort-1.9.0-1snort.i386.rpm&lt;br&gt;   这个命令会产生下面的动作：&lt;br&gt;n       创建/etc/snort目录，其中会存放Snort的规则文件和配置文件。&lt;br&gt;n       创建/var/log/snort目录，Snort的日志文件将会存放在这里。&lt;br&gt;n       创建/usr/share/doc/snort-1.9.0目录来存放Snort的文档文件，在这个目录中，你会看到类似于FAQ,README的文件和其他一些文件。&lt;br&gt;n       在/usr/sbin目录中创建一个叫做snort-plain的文件，这是Snort的守护进程。 创建文件/etc/rc.d/init.d/snortd文件，这是启动和关闭脚本。在RedHat Linux中，它与/etc/init.d/snortd等价。&lt;br&gt;到这里基本安装就完成了，你可以开始使用Snort。这个版本的Snort并没有将对数据库的支持编译进去，你只能用/var/log/snort目录下面的日志文件。&lt;br&gt;2．2．1．3  Snort的启动，停止和重启&lt;br&gt;用下面的命令手工启动Snort：&lt;br&gt;/etc/init.d/snortd start&lt;br&gt;这个命令将启动Snort守护进程，运行“ps –ef”命令，你可以看到类似于下面的输出：&lt;br&gt;root 15999 1 0 18:31 ? 00:00:01 /usr/sbin/&lt;br&gt;snort -A fast -b -l /var/log/snort -d -D -i eth0 -c /etc/&lt;br&gt;snort/snort.conf&lt;br&gt;  注意每次你重启机器，你都要手工启动Snort。你可以通过创建文件链接的方式让这个过程自动执行，这将在本章的后面讨论。&lt;br&gt;  用下面的命令停止Snort：&lt;br&gt;        /etc/init.d/snortd stop&lt;br&gt;  用下面的命令重新启动Snort：&lt;br&gt;        /etc/init.d/snortd restart&lt;br&gt;2．2．2 用源代码安装Snort&lt;br&gt;为了能够用源代码安装Snort,你必须先构造它。你可以用下面介绍的步骤来构造出可执行文件snort。首先从Snort网站（http://www.snort.org）获得最新版的Snort。在写这本书的时候，最新版的Snort是1.9.0，下载文件的名称是snort-1.9.0.tar.gz，下载后可以保存在/opt目录中。注意在你读这本书的时候可能会是更新的版本，安装方法也类似。&lt;br&gt;2．2．2．1 解压缩&lt;br&gt;下载后第一步要把源代码解压缩，用下面的命令来执行：&lt;br&gt;      tar zxvf snort-1.9.0.tar.gz&lt;br&gt;这样会创建/opt/snort-1.9.0目录。确定你将文件下载到/opt目录，并且你在这个目录运行tar命令。如果是其他版本的Snort,目录名称可能会有所不同，目录名称会反映版本号。解压缩后你可以运行tree命令来观察tar命令建立的目录树，如下所示是/opt/snort-1.9.0的目录树：&lt;br&gt;[root@conformix opt]# tree -d snort-1.9.0&lt;br&gt;snort-1.9.0&lt;br&gt;|-- contrib&lt;br&gt;|-- doc&lt;br&gt;|-- etc&lt;br&gt;|-- rules&lt;br&gt;|-- src&lt;br&gt;|     |-- detection-plugins&lt;br&gt;|     |-- output-plugins&lt;br&gt;|     |-- preprocessors&lt;br&gt;|     `-- win32&lt;br&gt;| |-- WIN32-Code&lt;br&gt;| |-- WIN32-Includes&lt;br&gt;| | |-- NET&lt;br&gt;| | |-- NETINET&lt;br&gt;| | |-- libnet&lt;br&gt;| | |-- mysql&lt;br&gt;| | `-- rpc&lt;br&gt;| |-- WIN32-Libraries&lt;br&gt;| | |-- libnet&lt;br&gt;| | `-- mysql&lt;br&gt;| `-- WIN32-Prj&lt;br&gt;`-- templates&lt;br&gt;21 directories&lt;br&gt;[root@conformix opt]#&lt;br&gt;这些目录中的主要内容如下所示：&lt;br&gt;contrib目录主要包括并非严格输入Snort自身组成部分的应用软件，这些软件包括ACID,MySQL数据库生成脚本和其他。&lt;br&gt;doc目录包含文档文件。&lt;br&gt;etc目录包含配置文件。&lt;br&gt;rules目录包含预先定义的规则文件。&lt;br&gt;所有的源代码在src目录下面。&lt;br&gt;templates是为那些准备自己写插件的人准备的，这对大多数Snort用户没有意义。&lt;br&gt;2．2．2．2 编译和安装&lt;br&gt;编译和安装过程包括下列3个步骤：&lt;br&gt;1．              运行configure脚本。&lt;br&gt;2．              运行make命令。&lt;br&gt;3．              运行make install命令。&lt;br&gt;开始Snort的编译过程，首先去/opt/snort-1.9.0目录并运行configure脚本。如果你刚刚开始接触GNU类的软件，你需要了解configure脚本是开放源码软件包通用的工具，它可以用来设置参数，创建makefile,检测开发工具和你系统中的库文件。运行configure脚本的时候，有许多命令行选项，这些选项决定Snort编译时将带有那些组件。比如，用这些选项，你可以构建对SNMP、MySQL或SMB告警的支持以及其他很多事情。你同样也可以定制Snort文件的最终安装位置。你可以用“./configure –help”命令来察看可用的选项，如下所示：&lt;br&gt;# ./configure --help&lt;br&gt;`configure' configures this package to adapt to many kinds of systems.&lt;br&gt;Usage: ./configure [OPTION]... [VAR=VALUE]...&lt;br&gt;To assign environment variables (e.g., CC, CFLAGS...), specify them as&lt;br&gt;VAR=VALUE.  See below for descriptions of some of the useful variables.&lt;br&gt;Defaults for the options are specified in brackets.&lt;br&gt;Configuration:&lt;br&gt;  -h, --help              display this help and exit&lt;br&gt;      --help=short        display options specific to this package&lt;br&gt;      --help=recursive    display the short help of all the included packages&lt;br&gt;  -V, --version           display version information and exit&lt;br&gt;  -q, --quiet, --silent   do not print `checking...' messages&lt;br&gt;      --cache-file=FILE   cache test results in FILE [disabled]&lt;br&gt;  -C, --config-cache      alias for `--cache-file=config.cache'&lt;br&gt;  -n, --no-create         do not create output files&lt;br&gt;      --srcdir=DIR        find the sources in DIR [configure dir or `..']&lt;br&gt;Installation directories:&lt;br&gt;  --prefix=PREFIX         install architecture-independent files in PREFIX&lt;br&gt;                          [/usr/local]&lt;br&gt;  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX&lt;br&gt;                          [PREFIX]&lt;br&gt;By default, `make install' will install all the files in&lt;br&gt;`/usr/local/bin', `/usr/local/lib' etc.  You can specify&lt;br&gt;an installation prefix other than `/usr/local' using `--prefix',&lt;br&gt;for instance `--prefix=$HOME'.&lt;br&gt;For better control, use the options below.&lt;br&gt;Fine tuning of the installation directories:&lt;br&gt;  --bindir=DIR           user executables [EPREFIX/bin]&lt;br&gt;  --sbindir=DIR          system admin executables [EPREFIX/sbin]&lt;br&gt;  --libexecdir=DIR       program executables [EPREFIX/libexec]&lt;br&gt;  --datadir=DIR          read-only architecture-independent data [PREFIX/share]&lt;br&gt;  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]&lt;br&gt;  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]&lt;br&gt;  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]&lt;br&gt;  --libdir=DIR           object code libraries [EPREFIX/lib]&lt;br&gt;  --includedir=DIR       C header files [PREFIX/include]&lt;br&gt;  --oldincludedir=DIR    C header files for non-gcc [/usr/include]&lt;br&gt;  --infodir=DIR          info documentation [PREFIX/info]&lt;br&gt;  --mandir=DIR           man documentation [PREFIX/man]&lt;br&gt;Program names:&lt;br&gt;  --program-prefix=PREFIX            prepend PREFIX to installed program names&lt;br&gt;  --program-suffix=SUFFIX            append SUFFIX to installed program names&lt;br&gt;  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names&lt;br&gt;System types:&lt;br&gt;  --build=BUILD     configure for building on BUILD [guessed]&lt;br&gt;  --host=HOST       cross-compile to build programs to run on HOST [BUILD]&lt;br&gt;Optional Features:&lt;br&gt;  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)&lt;br&gt;  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]&lt;br&gt;  --disable-dependency-tracking Speeds up one-time builds&lt;br&gt;  --enable-dependency-tracking  Do not reject slow dependency extractors&lt;br&gt;  --enable-debug          enable debugging options (bugreports and developers only)&lt;br&gt;  --enable-profile        enable profiling options (developers only)&lt;br&gt;  --enable-sourcefire     Enable Sourcefire specific build options&lt;br&gt;  --enable-perfmonitor     Enable perfmonitor preprocessor&lt;br&gt;  --enable-linux-smp-stats Enable statistics reporting through proc&lt;br&gt;  --enable-flexresp       Flexible Responses on hostile connection attempts&lt;br&gt;Optional Packages:&lt;br&gt;  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]&lt;br&gt;  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)&lt;br&gt;  --with-libpcap-includes=DIR  libpcap include directory&lt;br&gt;  --with-libpcap-libraries=DIR  libpcap library directory&lt;br&gt;  --with-libnet-includes=DIR   libnet include directory&lt;br&gt;  --with-libnet-libraries=DIR  libnet library directory&lt;br&gt;  --with-mysql=DIR        support for mysql&lt;br&gt;  --with-odbc=DIR         support for odbc&lt;br&gt;  --with-postgresql=DIR   support for postgresql&lt;br&gt;  --with-oracle=DIR       support for oracle&lt;br&gt;Some influential environment variables:&lt;br&gt;  CC          C compiler command&lt;br&gt;  CFLAGS      C compiler flags&lt;br&gt;  LDFLAGS     linker flags, e.g. -L&amp;lt;lib dir&amp;gt; if you have libraries in a&lt;br&gt;              nonstandard directory &amp;lt;lib dir&amp;gt;&lt;br&gt;  CPPFLAGS    C/C++ preprocessor flags, e.g. -I&amp;lt;include dir&amp;gt; if you have&lt;br&gt;              headers in a nonstandard directory &amp;lt;include dir&amp;gt;&lt;br&gt;  CPP         C preprocessor&lt;br&gt;Use these variables to override the choices made by `configure' or to help&lt;br&gt;it to find libraries and programs with nonstandard names/locations&lt;br&gt;   方括号中的值表示如果该选项如果没有被设定，系统就会选择该默认值。例如：-- prefix选项帮助第二行表示，如果没有设定—prefix选项，系统就会选择默认值/usr/local。PREFIX是指当你运行“make install”命令的时候Snort文件要安装的目录。&lt;br&gt;--prefix=PREFIX         install architecture-independent files in PREFIX&lt;br&gt;                          [/usr/local]&lt;br&gt;运行configure脚本的典型会话如下所示。为节省空间，输出信息作了删减。注意命令行中打开的选项。&lt;br&gt;[root@conformix snort-1.9.0]# ./configure --prefix=/opt/snort&lt;br&gt;--enable-smbalerts --enable-flexresp --with-mysql --with-snmp&lt;br&gt;--with-openssl&lt;br&gt;loading cache ./config.cache&lt;br&gt;checking for a BSD compatible install... (cached) /usr/bin/&lt;br&gt;install -c&lt;br&gt;checking whether build environment is sane... yes&lt;br&gt;checking whether make sets ${MAKE}... (cached) yes&lt;br&gt;checking for working aclocal... found&lt;br&gt;checking for working autoconf... found&lt;br&gt;checking for working automake... found&lt;br&gt;checking for working autoheader... found&lt;br&gt;checking for working makeinfo... found&lt;br&gt;checking for gcc... (cached) gcc&lt;br&gt;checking whether the C compiler (gcc ) works... yes&lt;br&gt;checking whether the C compiler (gcc ) is a cross-compiler...&lt;br&gt;no&lt;br&gt;checking whether we are using GNU C... (cached) yes&lt;br&gt;checking whether gcc accepts -g... (cached) yes&lt;br&gt;checking for gcc option to accept ANSI C... (cached) none&lt;br&gt;needed&lt;br&gt;checking for ranlib... (cached) ranlib&lt;br&gt;   输出信息作了删件，因为configure命令会产生大量的信息。选项prefix告诉configuire脚本程序最终的安装位置。其他的选项用来使下列Snort组件生效：&lt;br&gt;对MySQL数据库的支持。&lt;br&gt;对SNMP trap信息的支持。&lt;br&gt;对SMB告警的支持。SMB告警用来向Windows发出弹出窗口告警。&lt;br&gt;对flex响应的支持。Flex响应用来实时终止网络会话。后面的章节将提供关于flex响应的更多信息。注意你的系统必须安装了libnet才能够使用这个选项。你可以从http://www.securityfocus.net下载libnet。我是用1.0.2a版来完成安装的。&lt;br&gt;运行完configure脚本后，你可以运行下面两个命令来编译和安装Snort。&lt;br&gt;make&lt;br&gt;make install&lt;br&gt;你一个命令也许要一些时间来完成，这要看你的计算机的能力。当你运行完第二个命令，文件就会被安装到适当的目录中去了。因为你在运行configure脚本的时候选择了--prefix=/opt/snort，因此make install命令将Snort二进制文件安装到/opt/snort目录中去。&lt;br&gt;   运行configure脚本的可用参数见表2-1&lt;br&gt;表2-1 configure脚本参数一览表&lt;br&gt;参数&lt;br&gt;描述&lt;br&gt;--with-mysql&lt;br&gt;构建Snort对Mysql的支持&lt;br&gt;--with-snmp&lt;br&gt;构建Snort对SNMP的支持。如果用这个选项，必须同时选-—with-openssl&lt;br&gt;--with-openssl&lt;br&gt;对OpenSSL的支持。当你选—with-snmp时要选择这个选项。&lt;br&gt;--with-oracle&lt;br&gt;对Oracle数据库的支持。&lt;br&gt;--with-odbc&lt;br&gt;构建Snort对ODBC的支持。&lt;br&gt;--enable-flexresp&lt;br&gt;使Snort能够使用Flex响应，以能够终止恶意的连接。目前这个选项还在实验中（察看Snort发布的README.FLEXRESP文件）。&lt;br&gt;--enable-smbalerts&lt;br&gt;使Snort能够发送SMB告警。注意每次告警时都会占用客户端的用户空间。&lt;br&gt;--Prefix=DIR&lt;br&gt;设置安装Snort文件的目录。&lt;br&gt;在运行“make install”命令之前，你也可以运行“make check”命令来确定Snort的构建是否正确。&lt;br&gt;安装完毕之后，运行Snort来看看是否可执行文件可以工作。在完成前面的步骤后，Snort的二进制文件会被安装在/opt/snort/bing目录中。下面的命令会显示新安装的snort的基本帮助信息和命令行选项。&lt;br&gt;如果你看到这样的信息，你的Snort就安装正确了。在下一部分，你将了解如何配置和运行Snort。&lt;br&gt;2．2．2．3 安装完后要做的工作&lt;br&gt;现在你已经安装好了Snort二进制文件，但是还有些事情要做：&lt;br&gt;1、              创建/var/log/snort目录作为Snort默认的存放日至文件的地方。&lt;br&gt;2、              创建一个存放配置文件的目录。我创建的是/opt/snort/etc目录，你可以创建自己的目录。&lt;br&gt;3、              创建或者复制配置文件到/opt/snort/etc目录下。&lt;br&gt;4、              创建目录/opt/snort/rules并且将默认的规则文件拷贝到里面。这个目录会在snort.conf文件中指定，你可以创建自己喜欢的目录。&lt;br&gt;下面来详细解释这些步骤：&lt;br&gt;首先，创建/var/log/snort目录让Snort存放日志文件。你也可以用其它的目录，但是这个目录是惯常使用的。如果你用其他任何目录，你需要在启动Snort的时候用命令行选项-l来指定。&lt;br&gt;然后，要创建Snort配置文件。当Snort启动的时候，将从当前目录读取配置文件snort.conf或者从运行Snort的用户属主目录读取.snortrc文件。如果这个文件在其他目录中，你也可以用命令行选项-c来指定。开始的时候，你可以将Snort源代码中附带的snort.conf文件拷贝到你创建的/opt/snort/etc目录下面。同时也把classification.config和reference.config文件拷贝进去，这两个文件是snort.conf文件要引用的。另外将源代码中rules目录下面的所有文件拷贝到/opt/snort/rules目录下面。参考下列命令实现这些步骤：&lt;br&gt;mkdir /opt/snort/etc&lt;br&gt;cp /opt/snort-1.9.0/etc/snort.conf /opt/snort/etc&lt;br&gt;cp /opt/snort-1.9.0/etc/classification.config /opt/snort/etc&lt;br&gt;cp /opt/snort-1.9.0/etc/reference.config /opt/snort/etc&lt;br&gt;mkdir /opt/snort/rules&lt;br&gt;cp /opt/snort-1.9.0/rules/* /opt/snort/rules&lt;br&gt;rules目录中以.rules为后缀的文件中包含了各种规则，这些文件被snort.conf文件引用。这些rules文件的位置由snort.conf文件中定义的RULE_PATH变量控制，该变量在snort.conf中的定义一般如下表示：&lt;br&gt;var RULE_PATH ../rules&lt;br&gt;   它说明rules文件的位置在名叫rules的目录下。例如，如果snort.conf文件在/opt/snort/etc目录中，那么所有的规则文件就应该在/opt/snort/rules目录下。又例如如果snort.conf文件在/var/snort目录下，那么规则文件必须在/var/rules目录中。你也可以将snort.conf与所有规则文件放在同一目录下面，只是你要将snort.conf文件中rules位置变量的值由../变成./:&lt;br&gt;   var RULE_PATH ./&lt;br&gt;   在下一章中，你将了解更多的关于Snort规则的信息，同时你也将了解如何定义自己的规则。&lt;br&gt;   classification.config文件中包括了关于Snort规则分类的信息，你将在下一章中了解更多信息。在本书的例子中，Snort的所有源代码文件在/opt/snort-1.9.0目录中，如果你用的是不同版本的Snort,该目录也会不同。&lt;br&gt;   Reference.config文件中罗列了一些关于各种告警信息的参考网站的URL,这些参考将在Snort规则中引用，你会在下一章了解更多信息。典型的reference.config文件如下所示：&lt;br&gt;   # $Id: reference.config,v 1.3 2002/08/28 14:19:15 chrisgreen&lt;br&gt;Exp $&lt;br&gt;# The following defines URLs for the references found in the&lt;br&gt;rules&lt;br&gt;#&lt;br&gt;# config reference: system URL&lt;br&gt;config reference: bugtraq http://www.securityfocus.com/bid/&lt;br&gt;config reference: cve http://cve.mitre.org/cgi-bin/&lt;br&gt;cvename.cgi?name=&lt;br&gt;config reference: arachNIDS http://www.whitehats.com/info/IDS&lt;br&gt;# Note, this one needs a suffix as well.... lets add that in a&lt;br&gt;bit.&lt;br&gt;config reference: McAfee http://vil.nai.com/vil/content/v_&lt;br&gt;config reference: nessus http://cgi.nessus.org/plugins/&lt;br&gt;dump.php3?id=&lt;br&gt;config reference: url http://&lt;br&gt;   注意：classification和reference.config文件都会被主配置文件snort.conf引用。&lt;br&gt;   现在你可以用下面的命令运行Snort了，这个命令会显示启动信息，然后监听eth0接口。注意为了避免一些困扰，这个命令用命令行选项指定了snort.conf文件的绝对目录。&lt;br&gt;[root@conformix snort]# /opt/snort/bin/snort -c /opt/snort/&lt;br&gt;etc/snort.conf&lt;br&gt;Initializing Output Plugins!&lt;br&gt;Log directory = /var/log/snort&lt;br&gt;Initializing Network Interface eth0&lt;br&gt;--== Initializing Snort ==--&lt;br&gt;Decoding Ethernet on interface eth0&lt;br&gt;Initializing Preprocessors!&lt;br&gt;Initializing Plug-ins!&lt;br&gt;Parsing Rules file /opt/snort/etc/snort.conf&lt;br&gt;+++++++++++++++++++++++++++++++++++++++++++++++++++&lt;br&gt;Initializing rule chains...&lt;br&gt;No arguments to frag2 directive, setting defaults to:&lt;br&gt;Fragment timeout: 60 seconds&lt;br&gt;Fragment memory cap: 4194304 bytes&lt;br&gt;Fragment min_ttl: 0&lt;br&gt;Fragment ttl_limit: 5&lt;br&gt;Fragment Problems: 0&lt;br&gt;Stream4 config:&lt;br&gt;Stateful inspection: ACTIVE&lt;br&gt;Session statistics: INACTIVE&lt;br&gt;Session timeout: 30 seconds&lt;br&gt;Session memory cap: 8388608 bytes&lt;br&gt;State alerts: INACTIVE&lt;br&gt;Evasion alerts: INACTIVE&lt;br&gt;Scan alerts: ACTIVE&lt;br&gt;Log Flushed Streams: INACTIVE&lt;br&gt;MinTTL: 1&lt;br&gt;TTL Limit: 5&lt;br&gt;Async Link: 0&lt;br&gt;No arguments to stream4_reassemble, setting defaults:&lt;br&gt;Reassemble client: ACTIVE&lt;br&gt;Reassemble server: INACTIVE&lt;br&gt;Reassemble ports: 21 23 25 53 80 143 110 111 513&lt;br&gt;Reassembly alerts: ACTIVE&lt;br&gt;Reassembly method: FAVOR_OLD&lt;br&gt;http_decode arguments:&lt;br&gt;Unicode decoding&lt;br&gt;IIS alternate Unicode decoding&lt;br&gt;IIS double encoding vuln&lt;br&gt;Flip backslash to slash&lt;br&gt;Include additional whitespace separators&lt;br&gt;Ports to decode http on: 80&lt;br&gt;rpc_decode arguments:&lt;br&gt;Ports to decode RPC on: 111 32771&lt;br&gt;telnet_decode arguments:&lt;br&gt;Ports to decode telnet on: 21 23 25 119&lt;br&gt;Conversation Config:&lt;br&gt;KeepStats: 0&lt;br&gt;Conv Count: 32000&lt;br&gt;Timeout : 60&lt;br&gt;Alert Odd?: 0&lt;br&gt;Allowed IP Protocols: All&lt;br&gt;Portscan2 config:&lt;br&gt;log: /var/log/snort/scan.log&lt;br&gt;scanners_max: 3200&lt;br&gt;targets_max: 5000&lt;br&gt;target_limit: 5&lt;br&gt;port_limit: 20&lt;br&gt;timeout: 60&lt;br&gt;1273 Snort rules read...&lt;br&gt;1273 Option Chains linked into 133 Chain Headers&lt;br&gt;0 Dynamic rules&lt;br&gt;+++++++++++++++++++++++++++++++++++++++++++++++++++&lt;br&gt;Rule application order: -&amp;gt;activation-&amp;gt;dynamic-&amp;gt;alert-&amp;gt;pass-&lt;br&gt;&amp;gt;log&lt;br&gt;--== Initialization Complete ==--&lt;br&gt;-*&amp;gt; Snort! &amp;lt;*-&lt;br&gt;Version 1.9.0 (Build 209)&lt;br&gt;By Martin Roesch (roesch@sourcefire.com, www.snort.org)&lt;br&gt;正如你看到的这些输出信息，Snort已经开始监听eth0接口了。如果有任何包与规则匹配，Snort就会根据规则做出相应的动作并发出告警。告警可以以多种形式发出。在这种基本方式中，告警将被记录到/var/log/snort/alerts文件中。后面，你将看到产生其他形式的告警并将它们记录到数据库中的方法，同时你也会了解Snort告警的数据文件的格式。 &lt;p&gt;&lt;a href="http://tag.csdn.net/tag/.net"&gt;&lt;/a&gt;  &lt;p&gt;&lt;img height=0 src="http://counter.csdn.net/pv.aspx?id=24" width=0 border=0&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=3114088440382333141&amp;page=RSS%3a+%e5%9f%ba%e4%ba%8eSnort%e7%9a%84%e5%85%a5%e4%be%b5%e6%a3%80%e6%b5%8b%e7%b3%bb%e7%bb%9f&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=yizh1977.spaces.live.com&amp;amp;GT1=yizh1977"&gt;</description><comments>http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!158.entry#comment</comments><guid isPermaLink="true">http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!158.entry</guid><pubDate>Fri, 30 Nov 2007 13:41:16 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://yizh1977.spaces.live.com/blog/cns!2B3776EFF823A0D5!158/comments/feed.rss</wfw:commentRss><wfw:comment>http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!158.entry#comment</wfw:comment><dcterms:modified>2008-01-02T12:05:38Z</dcterms:modified></item><item><title>黑客白皮书:如何成为一名黑客(附FAQ)</title><link>http://yizh1977.spaces.live.com/Blog/cns!2B3776EFF823A0D5!157.entry</link><description>&lt;p&gt; &lt;p&gt;&lt;a href="http://blog.csdn.net/cnleon/archive/2007/08/25/1758982.aspx"&gt;&lt;/a&gt; &lt;p&gt;内容一览&lt;br&gt;为什么会有这份文档？&lt;br&gt;什么是黑客？&lt;br&gt;黑客应有的态度&lt;br&gt;黑客的基本技能&lt;br&gt;黑客文化中的地位&lt;br&gt;黑客和书呆子(Nerd)的联系&lt;br&gt;风格的意义&lt;br&gt;其它资源&lt;br&gt;FAQ（常问问题解答）&lt;br&gt;作为Jargon File的编辑和一些其他有名的类似性质文章的作者，我经常收到充满热情的网络新手的email提问（确实如此） “我如何才能成为一名出色的黑客？”非常奇怪的是似乎没有任何的FAQ或者Web形式的文档来说明这个十分重要的问题，因此我写了一份。&lt;br&gt;如果你现在读的是这份文档的离线拷贝，那么请注意当前最新版本（英文版）在 http://www.tuxedo.org/~esr/faqs/hacker-howto.html可以得到。&lt;br&gt;注意：在这份文档最后有 FAQ（常问问题解答）。请在向我提出任何关于这份文档的疑问之前读两遍。&lt;br&gt;目前这份文档有很多翻译版本： 保加利亚语， 简体中文， 繁体中文， 丹麦语， 荷兰语， 法语， 德语， 匈牙利语， 印尼语， 日语， 朝鲜语， 葡萄牙语， 俄语及 瑞典语。注意由于这份文档时有修正，所以以上翻译版本可能有不同程度的过时。&lt;br&gt;--------------------------------------------------------------------------------&lt;br&gt;什么是黑客？&lt;br&gt;Jargon File 包含了一大堆关于“hacker”这个词的定义，大部分与技术高超和热衷解决问题及超越极限有关。但如果你只想知道如何 成为 一名黑客，那么只有两件事情确实相关。&lt;br&gt;这可以追溯到几十年前第一台分时小型电脑诞生, ARPAnet 实验也刚展开的年代，那时有一个由程序设计专家和网络名人所组成的, 具有分享特点的文化社群。这种文化的成员创造了 “hacker” 这个名词。黑客们建立了 Internet。黑客们发明出了现在使用的 UNIX 操作系统。黑客们使 Usenet 运作起来， 黑客们让 WWW 运转起来。如果你是这个文化的一部分，如果你对这种文化有所贡献，而且这个社群的其它成员也认识你并称你为 hacker, 那么你就是一位黑客。&lt;br&gt;黑客精神并不仅仅局限在软件的黑客文化中。有人用黑客态度对待其它事情，如电子学和音乐—— 事实上，你可以在任何最高级别的科学和艺术活动中发现它。精于软件的黑客赞赏这些在其他领域的同类并把他们也称作黑客—— 有人宣称黑客天性是绝对独立于他们工作的特定领域的。但在这份文档中，我们将注意力集中在软件黑客的技术和态度，以及发明了“黑客”一词的以共享为特征的文化传统之上。&lt;br&gt;有一群人大声嚷嚷着自己是黑客，但他们不是。他们（主要是正值青春的少年）是一些蓄意破坏计算机和电话系统的人。真正的黑客把这些人叫做“骇客” (cracker)，并不屑与之为伍。多数真正的黑客认为骇客们又懒又不负责任，还没什么大本事。专门以破坏别人安全为目的的行为并不能使你成为一名黑客， 正如用铁丝偷开走汽车并不能使你成为一个汽车工程师。不幸的是，很多记者和作家往往错把“骇客”当成黑客；这种做法一直使真正的黑客感到恼火。&lt;br&gt;根本的区别是：黑客搞建设，骇客搞破坏。&lt;br&gt;如果你想成为一名黑客，请接着读下去。如果你想做一个骇客，去读 alt.2600 新闻组，并在意识到你并不像自己想象的那么聪明后去坐五到十次监狱。关于骇客，我只想说这么多。&lt;br&gt;--------------------------------------------------------------------------------&lt;br&gt;黑客应有的态度&lt;br&gt;黑客们解决问题，建设事物，同时他们崇尚自由和无私的双向帮助。要被他人承认是一名黑客，你的行为得体现出你好像具备了这种态度一般。而要想做得好象你具备这种态度一般，你就得切切实实坚持它。&lt;br&gt;但是如果你认为培养黑客态度只是一条在黑客文化圈中得到承认的路子，那就大错特错了。成为具备这些特质的这种人对你自己非常重要——有助于你学习，及给你提供源源不断的动力。同所有创造性的艺术一样，成为大师的最有效方法就是模仿大师的精神—— 不仅从智力上，也要从感情上进行模仿。&lt;br&gt;或许, 下面这首现代的禅诗很好的阐述了这个意思：&lt;br&gt;To follow the path:（沿着这样一条道路：）&lt;br&gt;look to the master,（寻找大师，）&lt;br&gt;follow the master,（跟随大师，）&lt;br&gt;walk with the master,（与大师通行，）&lt;br&gt;see through the master,（洞察大师，）&lt;br&gt;become the master.（成为大师。）&lt;br&gt;嗯，如果你想成为一名黑客，反复读下面的事情直至你相信它们：&lt;br&gt;--------------------------------------------------------------------------------&lt;br&gt;1. 世界充满了待解决的迷人问题。&lt;br&gt;做一名黑客会有很多乐趣，但却是要费很多气力方能得到的乐趣。 这些努力需要动力。成功的运动员从锻炼身体、超越自我极限的愉悦中得到动力。同样，做黑客，你得能从解决问题，磨练技术及锻炼智力中得到基本的乐趣。&lt;br&gt;如果你还不是天生的这类人又想做黑客，你就要设法成为这样的人。否则你会发现，你的黑客热情会被其他分心的事物吞噬掉——如金钱、性和社会上的虚名。&lt;br&gt;（同样你必须对你自己的学习能力建立信心——相信尽管当你对某问题近乎一无所知，但只要你一点一点地试验、学习，最终会掌握并解决它。）&lt;br&gt;--------------------------------------------------------------------------------&lt;br&gt;2. 一个问题不应该被解决两次。&lt;br&gt;聪明的脑袋是宝贵的有限的资源。当世界还充满非常多有待解决的有趣的新问题时，它们不应该被浪费在重新发明轮子这类事情上。&lt;br&gt;作为一名黑客，你必须相信其他黑客的思考时间是宝贵的——因此共享信息，解决问题并发布结果给其他黑客几乎是一种道义，这样其他人就可以去解决 新问题而不是不断地忙于对付旧问题。&lt;br&gt;(你不必认为一定要把你 所有的发明创造公布出去，但这样做的黑客是赢得大家极度尊敬的人。卖些钱来养家糊口，租房买计算机甚至发大财和黑客价值观也是相容的，只要你别忘记你还是个黑客。)&lt;br&gt;--------------------------------------------------------------------------------&lt;br&gt;3. 无聊和乏味的工作是罪恶。&lt;br&gt;黑客（泛指具有创造力的人们）应该从来不会被愚蠢的重复性劳动所困扰，因为当这种事情发生时就意味着他们没有在做只有他们才能做的事情—— 解决新问题。这样的浪费伤害每一个人。因此，无聊和乏味的工作不仅仅是令人不舒服而已，而且是罪恶。&lt;br&gt;作为一个黑客，你必须坚信这点并尽可能多地将乏味的工作自动化，不仅为你自己，也