<?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>Solo Estoy &#187; mtree</title>
	<atom:link href="http://www.opslife.com/tag/mtree/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.opslife.com</link>
	<description>人生不过是一场旷日持久却又无法rollback的operation而已</description>
	<lastBuildDate>Mon, 16 Jan 2012 01:34:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Sysadmin手记:如何利用mtree做FreeBSD操作系统文件完整性审计</title>
		<link>http://www.opslife.com/use-mtree-for-freebsd-filesystem-integrity-auditing/</link>
		<comments>http://www.opslife.com/use-mtree-for-freebsd-filesystem-integrity-auditing/#comments</comments>
		<pubDate>Mon, 10 Sep 2007 06:16:37 +0000</pubDate>
		<dc:creator>dawnh</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[auditing]]></category>
		<category><![CDATA[file-system]]></category>
		<category><![CDATA[mtree]]></category>

		<guid isPermaLink="false">http://dawnh.net/freebsd/252/use-mtree-for-freebsd-filesystem-integrity-auditing/</guid>
		<description><![CDATA[摘抄编译自 http://blogs.techrepublic.com.com/security/?p=283 对于一个Sysadmin来说，如何加固系统是一个长盛不衰的话题。然而再坚固的系统也有失守的时候，有时就可能因为非常细小的一点疏漏，导致整个系统被攻破。所以对于Sysadmin来说，尽可能地保证系统安全是其一，其二还要会更快速有效地发现系统被入侵或者控制这种行为。因此完善的日志体系是必要的。然而还有很多日志无法记录的入侵和破坏行为，这就要求从其他方面想办法。对于Windows操作系统，从Win2k起就有一个SFC系统，一旦系统核心文件被更改，就会提醒管理员并生成审计日志。这玩艺在Win2003又进一步发展，不过貌似也是非常不好用。MS在即将发布的Windows 2008里面建立了一种名为Trusted Platform的框架，进一步完善了SFC，其原理大体应该也是核心部件的数字签名以及认证机制，只不过做的更完善一些了。我现在的PC就是因为某P2P网络电视修改了tcpip.sys导致不断生成这个模块的error日志，大体说明这玩艺还是堪用的。不过Windows更难于发现的破坏行为大多在注册表而不是文件系统，所以此方面恐怕还要更为复杂一些。 扯远了，对于unix类操作系统来说，这方面就没有那么复杂了，因为一个系统本身设计哲学的原因：一切皆是文件。因此，只要能有效监控文件系统的更改，就可以抓住一切针对系统的不良行为。以前有过不少人写过Linux系统可以对整个根做md5sum来实现，这个对于其他Unix类系统也适用。然而对于FreeBSD来说，有一个更为方便的工具&#8211;mtree。 其实mtree这东西本来是用于安装系统或软件时预先创建目录树的，因为其有散列计算以及权限对比等能力，将其作为一个文件系统完整性审计工具也是刚好。另外还有一个很重要的原因是这个工具为基本发行版所附带，属于随手拈来的东西。假使系统被入侵，基础命令集像ps，top被替换地乱七八糟，也很少会有人想到在mtree上动手脚。即使为了万全的可信任概率考虑，也可以使用rescue CD里的这个工具，还有它依赖的运行库也是非常之少，甚至临时从其他系统cp一个来用也完全可以。 说了这么多废话，其实用法非常简单，如下： mtree -c -K sha256digest -p / &#62; mtree.txt -c代表输出至stdout，然后用转向定位到文件。 -K代表使用的散列方法，sha256可谓足够安全了吧。 -p代表要做mtree的目录，指定根自然是对整个文件系统做了。如果按照实际使用需求，其实不应该包含入一些被更改频率很高的目录，例如/var/log等。想做得更完善一点就可以写个脚本读取某文件里的目录列表挨个mtree了。 完成后mtree.txt里面就是我们要获取的审计信息了。 根据mtree.txt再来对照文件系统来检查更改情况则用以下命令： mtree -f /path-to-mtree.txt -K sha256digest -p / 无输出则表示文件系统没更改，如果有输出，应该是以下类型的结果： . changed  modification time expected Mon Sep 10 13:40:01 2007 found Mon Sep 10 14:08:21 2007 mtree.txt changed  size expected 0 found 24407  modification time expected Mon <a href='http://www.opslife.com/use-mtree-for-freebsd-filesystem-integrity-auditing/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>摘抄编译自 <a href="http://blogs.techrepublic.com.com/security/?p=283">http://blogs.techrepublic.com.com/security/?p=283</a></p>
<p>对于一个Sysadmin来说，如何加固系统是一个长盛不衰的话题。然而再坚固的系统也有失守的时候，有时就可能因为非常细小的一点疏漏，导致整个系统被攻破。所以对于Sysadmin来说，尽可能地保证系统安全是其一，其二还要会更快速有效地发现系统被入侵或者控制这种行为。因此完善的日志体系是必要的。然而还有很多日志无法记录的入侵和破坏行为，这就要求从其他方面想办法。对于Windows操作系统，从Win2k起就有一个SFC系统，一旦系统核心文件被更改，就会提醒管理员并生成审计日志。这玩艺在Win2003又进一步发展，不过貌似也是非常不好用。MS在即将发布的Windows 2008里面建立了一种名为Trusted Platform的框架，进一步完善了SFC，其原理大体应该也是核心部件的数字签名以及认证机制，只不过做的更完善一些了。我现在的PC就是因为某P2P网络电视修改了tcpip.sys导致不断生成这个模块的error日志，大体说明这玩艺还是堪用的。不过Windows更难于发现的破坏行为大多在注册表而不是文件系统，所以此方面恐怕还要更为复杂一些。</p>
<p>扯远了，对于unix类操作系统来说，这方面就没有那么复杂了，因为一个系统本身设计哲学的原因：一切皆是文件。因此，只要能有效监控文件系统的更改，就可以抓住一切针对系统的不良行为。以前有过不少人写过Linux系统可以对整个根做md5sum来实现，这个对于其他Unix类系统也适用。然而对于FreeBSD来说，有一个更为方便的工具&#8211;mtree。</p>
<p>其实mtree这东西本来是用于安装系统或软件时预先创建目录树的，因为其有散列计算以及权限对比等能力，将其作为一个文件系统完整性审计工具也是刚好。另外还有一个很重要的原因是这个工具为基本发行版所附带，属于随手拈来的东西。假使系统被入侵，基础命令集像ps，top被替换地乱七八糟，也很少会有人想到在mtree上动手脚。即使为了万全的可信任概率考虑，也可以使用rescue CD里的这个工具，还有它依赖的运行库也是非常之少，甚至临时从其他系统cp一个来用也完全可以。<br />
说了这么多废话，其实用法非常简单，如下：</p>
<pre class="screen">mtree -c -K sha256digest -p / &gt; mtree.txt</pre>
<p>-c代表输出至stdout，然后用转向定位到文件。</p>
<p>-K代表使用的散列方法，sha256可谓足够安全了吧。</p>
<p>-p代表要做mtree的目录，指定根自然是对整个文件系统做了。如果按照实际使用需求，其实不应该包含入一些被更改频率很高的目录，例如/var/log等。想做得更完善一点就可以写个脚本读取某文件里的目录列表挨个mtree了。</p>
<p>完成后mtree.txt里面就是我们要获取的审计信息了。<br />
根据mtree.txt再来对照文件系统来检查更改情况则用以下命令：</p>
<pre class="screen">mtree -f /path-to-mtree.txt -K sha256digest -p /</pre>
<p>无输出则表示文件系统没更改，如果有输出，应该是以下类型的结果：</p>
<pre class="screen">. changed

 modification time expected Mon Sep 10 13:40:01 2007 found Mon Sep 10 14:08:21 2007

mtree.txt changed

 size expected 0 found 24407

 modification time expected Mon Sep 10 14:08:09 2007 found Mon Sep 10 14:08:11 2007

 SHA-256 expected e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 found cb61a409d5e71a69ebbaa713e6d752db275a04f1629b86c4e52a835c70c422df

xxx extra

yyy missing</pre>
<p>changed代表文件有变动，extra则代表为新建的文件，missing自然是代表文件没了。一目了然。</p>
<p>这样我们所要做的就是定期为文件系统做一个mtree.txt并妥善保管好，并在系统疑似出问题时拿出它来检查了。</p>
<ul class="related_post"><li>2009/09/18 -- <a href="http://www.opslife.com/dsr-implemention/" title="有关DSR的网络拓扑结构和实现方法">有关DSR的网络拓扑结构和实现方法</a> (1)</li><li>2007/11/22 -- <a href="http://www.opslife.com/upgrade-to-freebsd-7-beta-3/" title="升级至FreeBSD 7.0-BETA3">升级至FreeBSD 7.0-BETA3</a> (2)</li><li>2007/11/01 -- <a href="http://www.opslife.com/identify-diffrent-hashing-algorithm/" title="区分几种知名散列算法的散列值的方法">区分几种知名散列算法的散列值的方法</a> (0)</li><li>2007/10/30 -- <a href="http://www.opslife.com/zfs-under-freebsd-performace/" title="ZFS under FreeBSD performace">ZFS under FreeBSD performace</a> (0)</li><li>2007/08/07 -- <a href="http://www.opslife.com/jeffr-comment-about-sd-and-cfs/" title="A comment abount SD, CFS Schedulers,from ULE&#8217;s author">A comment abount SD, CFS Schedulers,from ULE&#8217;s author</a> (15)</li><li>2007/06/06 -- <a href="http://www.opslife.com/freebsd%e6%9e%b6%e8%ae%bentpd%e6%9c%8d%e5%8a%a1%e6%89%8b%e8%ae%b0/" title="FreeBSD架设ntpd服务手记">FreeBSD架设ntpd服务手记</a> (0)</li><li>2007/06/05 -- <a href="http://www.opslife.com/freebsd-powerd-howto/" title="FreeBSD操作系统利用powerd服务减轻系统功耗">FreeBSD操作系统利用powerd服务减轻系统功耗</a> (0)</li><li>2007/05/06 -- <a href="http://www.opslife.com/freebsd-jail-howto/" title="FreeBSD的Jail安装手记">FreeBSD的Jail安装手记</a> (0)</li><li>2007/04/15 -- <a href="http://www.opslife.com/%e8%b6%85%e4%bd%8e%e7%ba%a7%e5%a4%b1%e8%af%af-%e8%af%af%e5%88%a0%e9%99%a4etc/" title="超低级失误&#8211;误删除/etc">超低级失误&#8211;误删除/etc</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.opslife.com/use-mtree-for-freebsd-filesystem-integrity-auditing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

