<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>theory14</title>
	<atom:link href="http://theory14.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://theory14.wordpress.com</link>
	<description></description>
	<lastBuildDate>Sun, 01 Jan 2012 21:04:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='theory14.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>theory14</title>
		<link>http://theory14.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://theory14.wordpress.com/osd.xml" title="theory14" />
	<atom:link rel='hub' href='http://theory14.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Dovecot IMAPS Proxy with OpenBSD 4.8</title>
		<link>http://theory14.wordpress.com/2010/12/24/dovecot-imaps-proxy-with-openbsd-4-8/</link>
		<comments>http://theory14.wordpress.com/2010/12/24/dovecot-imaps-proxy-with-openbsd-4-8/#comments</comments>
		<pubDate>Fri, 24 Dec 2010 16:19:15 +0000</pubDate>
		<dc:creator>theory14</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://theory14.wordpress.com/?p=42</guid>
		<description><![CDATA[In a previous article, I discussed setting up an IMAP proxy to get mail remotely from my iPhone using Doevcot.  The one part of the set up I never really liked is that the link from my bastion host acting as a &#8230; <a href="http://theory14.wordpress.com/2010/12/24/dovecot-imaps-proxy-with-openbsd-4-8/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theory14.wordpress.com&amp;blog=18126143&amp;post=42&amp;subd=theory14&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In a previous <a href="http://theory14.wordpress.com/2009/06/16/openbsd-smtp-authtls-imaps-proxy/">article</a>, I discussed setting up an IMAP proxy to get mail remotely from my iPhone using <a href="http://www.dovecot.org/">Doevcot</a>.  The one part of the set up I never really liked is that the link from my bastion host acting as a proxy and my actual mail server had to go un-encrypted.  Granted this was inside my network and if someone was sniffing the transaction off the wire I had bigger problems, but it still bothered me as less than perfect.  While I could have grabbed a Dovecot RC source tarball and had the feature, I preferred to stay with what was packaged with OpenBSD and have lived with the lack of encryption inside my network.  Well I finally (OK, just a month and a half since release) updated my inbound proxy to OpenBSD 4.8. and one of the prominent notes on the upgrade is a move to Dovecot 1.2.x.  This upgrade allows encryption of the proxied connection and resolves that long-standing concern I&#8217;ve had.</p>
<p>Assuming your internal mail server is already listening for IMAPS connections, you only need to modify the &#8220;extra-fields&#8221; in your /etc/dovecot.passwd file to get encryption of the proxied connection.  For example:</p>
<pre>bubba:{PLAIN-MD5}31337::::::proxy=y host=192.168.5.6 ssl=any-cert port=993</pre>
<p>&nbsp;</p>
<div id="attachment_50" class="wp-caption alignnone" style="width: 310px"><a href="http://theory14.files.wordpress.com/2010/12/imap-proxy-with-ssl1.png"><img class="size-medium wp-image-50" title="imap-proxy-with-ssl" src="http://theory14.files.wordpress.com/2010/12/imap-proxy-with-ssl1.png?w=300&#038;h=259" alt="Before and After" width="300" height="259" /></a><p class="wp-caption-text">Before and After</p></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/theory14.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/theory14.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/theory14.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/theory14.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/theory14.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/theory14.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/theory14.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/theory14.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/theory14.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/theory14.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/theory14.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/theory14.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/theory14.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/theory14.wordpress.com/42/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theory14.wordpress.com&amp;blog=18126143&amp;post=42&amp;subd=theory14&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://theory14.wordpress.com/2010/12/24/dovecot-imaps-proxy-with-openbsd-4-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ecdb3a0117997e24f2b24e3ecdb2f582?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">theory14</media:title>
		</media:content>

		<media:content url="http://theory14.files.wordpress.com/2010/12/imap-proxy-with-ssl1.png?w=300" medium="image">
			<media:title type="html">imap-proxy-with-ssl</media:title>
		</media:content>
	</item>
		<item>
		<title>Is Twitter really something new?</title>
		<link>http://theory14.wordpress.com/2010/12/11/is-twitter-really-something-new/</link>
		<comments>http://theory14.wordpress.com/2010/12/11/is-twitter-really-something-new/#comments</comments>
		<pubDate>Sat, 11 Dec 2010 19:01:51 +0000</pubDate>
		<dc:creator>theory14</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://theory14.wordpress.com/?p=34</guid>
		<description><![CDATA[While I&#8217;m on the topic of poorly re-invented applications, I&#8217;ll take a quick shot at Twitter (in a tweet-length post).    Is this really anything more than finger and keeping your .plan up to date?<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theory14.wordpress.com&amp;blog=18126143&amp;post=34&amp;subd=theory14&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>While I&#8217;m on the topic of poorly re-invented applications, I&#8217;ll take a quick shot at Twitter (in a tweet-length post).    Is this really anything more than <a href="http://www.FreeBSD.org/cgi/man.cgi?query=finger&amp;apropos=0&amp;sektion=0&amp;manpath=FreeBSD+8.1-RELEASE&amp;format=html">finger</a> and keeping your .plan up to date?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/theory14.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/theory14.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/theory14.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/theory14.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/theory14.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/theory14.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/theory14.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/theory14.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/theory14.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/theory14.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/theory14.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/theory14.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/theory14.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/theory14.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theory14.wordpress.com&amp;blog=18126143&amp;post=34&amp;subd=theory14&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://theory14.wordpress.com/2010/12/11/is-twitter-really-something-new/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ecdb3a0117997e24f2b24e3ecdb2f582?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">theory14</media:title>
		</media:content>
	</item>
		<item>
		<title>ChromeOS: nothing new, just a re-hash of what was done better before</title>
		<link>http://theory14.wordpress.com/2010/12/11/chromeos-nothing-new-just-a-re-hash-of-what-was-done-better-before/</link>
		<comments>http://theory14.wordpress.com/2010/12/11/chromeos-nothing-new-just-a-re-hash-of-what-was-done-better-before/#comments</comments>
		<pubDate>Sat, 11 Dec 2010 18:42:13 +0000</pubDate>
		<dc:creator>theory14</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://theory14.wordpress.com/?p=31</guid>
		<description><![CDATA[I was just reading a few articles and watching a couple of videos about Chrome OS and the Cr-48 laptop.  From what I&#8217;ve seen this is pretty much a netbook that boots and loads a browser as your UI.  You &#8230; <a href="http://theory14.wordpress.com/2010/12/11/chromeos-nothing-new-just-a-re-hash-of-what-was-done-better-before/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theory14.wordpress.com&amp;blog=18126143&amp;post=31&amp;subd=theory14&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I was just reading a few articles and watching a couple of videos about Chrome OS and the Cr-48 laptop.  From what I&#8217;ve seen this is pretty much a netbook that boots and loads a browser as your UI.  You do everything from within the browser including additional &#8220;applications&#8221; that you install in the browser.</p>
<p>As I watched this I immediately thought of <a href="http://www.gnu.org/software/emacs/">Emacs</a> and the jokes about Emacs being a nice operating system.  Let&#8217;s see, Emacs has been ported to many different operating systems (many more than the Chrome browser and not tying you to ChromeOS), has many different forks incase you would like something a little bit different than the GNU version, has a rich library of extensions and packages (like the Chrome Web Apps), contains a scripting language to customize or further extend it, and some people even use it as a text editor.  This sounds a lot like what Google is trying to do with Chrome without the added &#8220;benefit&#8221; of making sure your eyeballs land on Google web properties (ad placement, user tracking, etc).</p>
<p>The other big hype about Chrome OS seems to be that you can get to your data from anywhere.  You just fire up any copy of the Chrome browser on a regular computer or your ChromeOS laptop, log into your Google account and everything is there.  All of your applications and all of your data available anywhere.  All of it tucked away on Google&#8217;s servers for them to mine, use to target you with advertisements, better track you, and if they ever need a bunch of cash, to sell.  The universal access to your data is, like Emacs, nothing new; though, selling your soul and identity for it is.  Before the Internet was prevalent (or existed) you could use a modem to connect to your computer from anywhere that had a phone line and fire up your copy of Emacs and run all of those great applications and extensions in it.  Today, this is just as easily accomplished with an SSH client and internet connection instead of a modem and phone line.  SSH clients are available on a far larger number of platforms than is ChromeOS.  It&#8217;s a default part of Mac OS X, pretty much every Linux distro (don&#8217;t know about ChromeOS or if it is even considered a Linux distro), all of the BSDs, and with a copy of <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">PuTTY</a> (a single file) on a USB stick, it&#8217;s available on any Windows machine you encounter.  The best part is that all of your information is on your own computer safe from any data mining.</p>
<p>So far all of the hype about this revolution that Google has created, all they have done is re-invented what has been around since the mid-1970s.  I&#8217;m sure there are many examples other than the ones I chose, but it all comes down to a quote &#8221;Those who don&#8217;t know history are destined to repeat it, poorly&#8221;.</p>
<p>P.S.  I&#8217;m a vi user.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/theory14.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/theory14.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/theory14.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/theory14.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/theory14.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/theory14.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/theory14.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/theory14.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/theory14.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/theory14.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/theory14.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/theory14.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/theory14.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/theory14.wordpress.com/31/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theory14.wordpress.com&amp;blog=18126143&amp;post=31&amp;subd=theory14&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://theory14.wordpress.com/2010/12/11/chromeos-nothing-new-just-a-re-hash-of-what-was-done-better-before/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ecdb3a0117997e24f2b24e3ecdb2f582?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">theory14</media:title>
		</media:content>
	</item>
		<item>
		<title>Moving the Blog</title>
		<link>http://theory14.wordpress.com/2010/12/05/moving-the-blog/</link>
		<comments>http://theory14.wordpress.com/2010/12/05/moving-the-blog/#comments</comments>
		<pubDate>Sun, 05 Dec 2010 03:25:23 +0000</pubDate>
		<dc:creator>theory14</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://theory14.wordpress.com/?p=27</guid>
		<description><![CDATA[I&#8217;m just finishing up moving this blog from Blogger to WordPress.  I can see that some of the word wrapping didn&#8217;t translate so well in some of the posts (code snippets in particular).  I&#8217;ll try to go back and fix &#8230; <a href="http://theory14.wordpress.com/2010/12/05/moving-the-blog/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theory14.wordpress.com&amp;blog=18126143&amp;post=27&amp;subd=theory14&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m just finishing up moving this blog from Blogger to WordPress.  I can see that some of the word wrapping didn&#8217;t translate so well in some of the posts (code snippets in particular).  I&#8217;ll try to go back and fix then, but I apologize in advance if something is hard to read.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/theory14.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/theory14.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/theory14.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/theory14.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/theory14.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/theory14.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/theory14.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/theory14.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/theory14.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/theory14.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/theory14.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/theory14.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/theory14.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/theory14.wordpress.com/27/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theory14.wordpress.com&amp;blog=18126143&amp;post=27&amp;subd=theory14&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://theory14.wordpress.com/2010/12/05/moving-the-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ecdb3a0117997e24f2b24e3ecdb2f582?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">theory14</media:title>
		</media:content>
	</item>
		<item>
		<title>Disk Drives for Mac Video Editing</title>
		<link>http://theory14.wordpress.com/2010/08/01/disk-drives-for-mac-video-editing/</link>
		<comments>http://theory14.wordpress.com/2010/08/01/disk-drives-for-mac-video-editing/#comments</comments>
		<pubDate>Sun, 01 Aug 2010 17:24:00 +0000</pubDate>
		<dc:creator>theory14</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://theory14.wordpress.com/2010/08/01/disk-drives-for-mac-video-editing</guid>
		<description><![CDATA[Following a number of video editing forums, the question of what kind of disk should be used, often comes up. I&#8217;ve seen this general question come up a lot on the forums &#8212; &#8220;Is my disk OK? What kind of &#8230; <a href="http://theory14.wordpress.com/2010/08/01/disk-drives-for-mac-video-editing/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theory14.wordpress.com&amp;blog=18126143&amp;post=13&amp;subd=theory14&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div>Following a number of video editing forums, the question of what kind of disk should be used, often comes up.  I&#8217;ve seen this general question come up a lot on the forums &#8212; &#8220;Is my disk OK?  What kind of disk do I need?&#8221;  There are a lot of good answers to these questions that get people working quickly, but I thought I&#8217;d take a little bit and explain a bit more of the &#8220;why&#8221; and &#8220;how&#8221; this all works.  I&#8217;m going to keep this at somewhat of a high level and limited to what we would typically put in our Macs.</div>
<div></div>
<div>Fundamentally, you are concerned with two basic properties of the system:</div>
<div>
<ul>
<li>How fast you can get data to/from the disk</li>
<li>How fast the disk itself can read/write that data</li>
</ul>
</div>
<div></div>
<div>First, how fast can we get data to/from the disk.  This is governed by the interconnect technology used to connect the CPU/Memory to the disk.  On a typical Mac, you have a few options:</div>
<div>
<ul>
<li>SATA (Serial ATA):  This is what your internal hard drives are connected with.  This can nominally push data at 3 Gbits/s (3072 Mbits/sec).  SATA was designed for hard drives.</li>
<li>eSATA:  Simply SATA with special connectors to support external disk enclosures.</li>
<li>USB:  This will nominally push data at 480 Mbits/sec.  Due to the way USB works, it can have performance issues keeping up performance transferring large amounts of data &#8212; expect to see half or less of the nominal rate.  USB was designed as a general peripheral connection technology &#8212; not necessarily optimized for disks storage.</li>
<li>Firewire (IEEE 1394):  Comes in two versions, FW 400 (nominally 400 MBits/s) and FW 800 (800 MBits/s).  Firewire was designed to support disk storage along with other audio/visual connectivity protocols.</li>
</ul>
</div>
<div></div>
<div>The disks themselves&#8230;  So what are the important parameters to look for in the disk itself:</div>
<div>
<ul>
<li>Rotational Speed:  This is how fast the drive spins.  You will typically see two different speeds 5400 rpm and 7200 rpm.  There are increasingly &#8220;green&#8221; drives appearing on the market which I&#8217;ll discuss briefly later.  Hard drives have spinning platters (disks) and a set of read/write heads inside them.  This isn&#8217;t much different than a phonograph with the disks being the vinyl record and the read/write heads being the needle.  To access a bit of data, the heads have to move to a specific radial position and then wait until the write spot is spun underneath them.  Remember that data (your files) is, to various degrees spread all over the disks.  When you read or write a lot of data the heads are constantly repositioning and waiting as right data passes under them.  Think of trying to listen to several songs at the same time on a vinyl record and you get the idea.</li>
<li>Cache:  Disks have cache on them that can speed up read and write operations.  Bigger is generally better, but cache is only so good.</li>
<li>Data Transfer Rate:  This is fundamentally a function of the rotational speed, but it tells you how fast the disk can actually read/write.  Each disk has different specs, so you have to check the disk you&#8217;re considering.  Also be very careful as to exactly what performance is being reported by the manufacturer and make sure you are doing apples to apples comparisons.</li>
</ul>
</div>
<div></div>
<div>Now to tie it all together.  You&#8217;re speed is going to be limited by the slowest part of the chain.  If you put a slow disk with a fast interconnect, you&#8217;re limited by the slow disk and vice versa.  In practice, the slowest options of the above are USB and 5400 rpm drives.  Either SATA or Firewire has a higher data rate than the 7200 rpm disk can sustain.  The other thing to consider is how many concurrent IO operations you are sending to the disk.  Your system disk (Macintosh HD) has to service all of the other IO needs of your system.  If you add your video editing demands to this, you could overwhelm the drive.</div>
<div></div>
<div>I think there are a few common problems that people run into:</div>
<div>
<ul>
<li>The MacBook Pro&#8217;s standard drive is a 5400 rpm disk.  This is probably going to be too slow for most video editing demands, especially when you add additional IO demands.  It will &#8220;work&#8221; but you probably won&#8217;t be happy.  </li>
<li>Disk is too full.  You need to leave 10% &#8211; 20% of your disk free.  The OS needs this free space to easily organize the data it&#8217;s writing to disk.</li>
<li>Just sending too much IO to a single disk.  A single disk can only handle so much IO.  Once you go over that, you wait (or drop frames).</li>
</ul>
</div>
<div></div>
<div>The most common solution is to use a 7200 rpm disk connected by Firewire.  7200 rpm because it&#8217;s the fastest you&#8217;re going to reasonably afford and Firewire because it&#8217;s fast enough and every Mac (maybe not the MacBook) has it.  If you have a MacPro, you can look at adding more internal SATA drives (consider RAID&#8217;ing them for more performance) or look at eSATA (need to buy a controller in addition to disks).</div>
<div></div>
<div>If you&#8217;re in a bigger setting with shared storage arrays, you have even more options and things get even more complicated.  I&#8217;ll not going into that here, but am happy to discuss in more detail if anyone is curious.</div>
<div></div>
<div>P.S.  What about those &#8220;Green&#8221; disks &#8212; I want to be nice to the environment.  The Green drives that are becoming popular work by dynamically changing speeds based on demands, with their primary goal to save power and thus run at slower speeds.  When you start sending data to these disks, they typically have to spin up from some nominal lower speed to something faster to support your IO.  You pay a penalty (wait) for the spin up and are at the mercy of the drive to decide if it wants to spin up to full speed.  These are great for longer term storage for data infrequently used (say a Time Machine disk, Aperture Vaults, iTunes music collection, or just online archive storage of files (vidoe or otherwise)) but not for something needing consistent, fast throughput, say Video Editing.</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/theory14.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/theory14.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/theory14.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/theory14.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/theory14.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/theory14.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/theory14.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/theory14.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/theory14.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/theory14.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/theory14.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/theory14.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/theory14.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/theory14.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theory14.wordpress.com&amp;blog=18126143&amp;post=13&amp;subd=theory14&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://theory14.wordpress.com/2010/08/01/disk-drives-for-mac-video-editing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ecdb3a0117997e24f2b24e3ecdb2f582?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">theory14</media:title>
		</media:content>
	</item>
		<item>
		<title>Automating SSH Tunnels on Mac OS X</title>
		<link>http://theory14.wordpress.com/2010/04/24/automating-ssh-tunnels-on-mac-os-x/</link>
		<comments>http://theory14.wordpress.com/2010/04/24/automating-ssh-tunnels-on-mac-os-x/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 16:24:00 +0000</pubDate>
		<dc:creator>theory14</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://theory14.wordpress.com/2010/04/24/automating-ssh-tunnels-on-mac-os-x</guid>
		<description><![CDATA[There are a number of packages out there that put a nice GUI over creating and managing SSH tunnels on Mac OS X. While these are great if you aren&#8217;t already familiar with SSH, how to do this all from &#8230; <a href="http://theory14.wordpress.com/2010/04/24/automating-ssh-tunnels-on-mac-os-x/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theory14.wordpress.com&amp;blog=18126143&amp;post=12&amp;subd=theory14&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>There are a number of packages out there that put a nice GUI over creating and managing SSH tunnels on Mac OS X.  While these are great if you aren&#8217;t already familiar with SSH, how to do this all from the command line and really aren&#8217;t interested in learning, if you are, they may be a bit of overkill and may be a bit restrictive in what you can do.</p>
<div>I finally got a Mac at work (my company&#8217;s Corp IT group is becoming a bit more enlightened and accepting that more than just Windows exists in the world) and I want a simple way to spin up SSH tunnels, close them down not have to keep a terminal window open for them.  My solution is to wrap some Applescript around the SSH commands and launch my tunnels from the script menu on the menu bar.</div>
<div>The simple script:</div>
<div>
<pre>do shell script "ssh -4 -A -N -L 12345:localhost:12346 host.example.com &amp;&gt; /dev/null &amp; echo $!"set sshpid to the resultdisplay dialog "ssh PID is: " &amp; sshpid buttons {"Close Tunnel"}do shell script "kill -9 " &amp; sshpid</pre>
<p>When the tunnel is created, a window will pop up giving you the pid of the ssh process and a button to close the tunnel.  When click the &#8220;Close Tunnel&#8221; button, the tunnel is shutdown by killing (with the mean -9, chose the signal you want) the ssh process.</p>
</div>
<div>Now my most common need/desire for a tunnel is to listen to my music stored at home on my machine at work.  At home I use  <a href="http://en.wikipedia.org/wiki/Firefly_Media_Server">Firefly Media Server</a> to share my library so I just want to tap into that at work.  A quick google search shows the steps to do this:</div>
<div>
<ul>
<li>Use dns-sd to register a daap servers on local host</li>
<li>Create an ssh tunnel from localhost to the remote daap stream</li>
</ul>
<div>The script is (my ssh tunnel bounces through a couple of different hosts):</div>
</div>
<p><code>do shell script "dns-sd -P my-music _daap._tcp local 3690 localhost.local. 127.0.0.1 Arbitrary &amp;&gt; /dev/null &amp; echo $!"<br />
set dnssdpid to the result<br />
do shell script "ssh -4 -A -L 3690:localhost:9999 host1.example.net ssh -l remoteuser -A -L 9999:localhost:9998 192.168.10.3 ssh -A -N -L 9998:localhost:3689 host2.example.net &amp;&gt; /dev/null &amp; echo $!"<br />
set sshpid to the result<br />
display dialog "Music Tunneldns-sd PID is:  " &amp; dnssdpid &amp; "ssh PID is: " &amp; sshpid buttons {"Close Tunnel"}<br />
do shell script "kill -9 " &amp; sshpid &amp; " " &amp; dnssdpid<br />
</code><br />
This script starts both dns-sd and the ssh tunnel and when closes them both down when the &#8220;Close Tunnel&#8221; button is clicked.</p>
<div>To run this easily, enable the Script Menu in the menu bar (via AppleScript Editor preferences) and put the script in<tt>~/Library/Scripts</tt>.</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/theory14.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/theory14.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/theory14.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/theory14.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/theory14.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/theory14.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/theory14.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/theory14.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/theory14.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/theory14.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/theory14.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/theory14.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/theory14.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/theory14.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theory14.wordpress.com&amp;blog=18126143&amp;post=12&amp;subd=theory14&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://theory14.wordpress.com/2010/04/24/automating-ssh-tunnels-on-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ecdb3a0117997e24f2b24e3ecdb2f582?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">theory14</media:title>
		</media:content>
	</item>
		<item>
		<title>Snow Leopard &#8212; First Impressions</title>
		<link>http://theory14.wordpress.com/2009/08/30/snow-leopard-first-impressions/</link>
		<comments>http://theory14.wordpress.com/2009/08/30/snow-leopard-first-impressions/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 14:33:00 +0000</pubDate>
		<dc:creator>theory14</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://theory14.wordpress.com/2009/08/30/snow-leopard-first-impressions</guid>
		<description><![CDATA[I was planning on picking up Snow Leopard (Mac OS 10.6) next weekend, but we were by the mall yesterday, so I went ahead and picked up a copy. My initial plan was to wait a week and let any &#8230; <a href="http://theory14.wordpress.com/2009/08/30/snow-leopard-first-impressions/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theory14.wordpress.com&amp;blog=18126143&amp;post=11&amp;subd=theory14&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I was planning on picking up Snow Leopard (Mac OS 10.6) next weekend, but we were by the mall yesterday, so I went ahead and picked up a copy.  My initial plan was to wait a week and let any major issues be discovered before I did my upgrades.  Of course, I couldn&#8217;t let it sit around for a week, and with multiple backup systems of my machines, I installed it last night.  My initial experience and impressions are:
<div>
<ul>
<li>The upgrade process took 22 minutes and consisted of 3 or 4 mouse clicks and a reboot.</li>
<li>I have a number of SMB shares mounted from a server running Samba.  I had to change the security setting to &#8220;user&#8221; where it had been &#8220;share&#8221;.</li>
<li>The upgrade performed by the installer overwrote my /etc/snmp/snmpd.conf file.  This prevented any snmp monitoring from working until I figured out what went wrong.  (The installer also re-enables the OS X firewall even if it was disabled before &#8212; probably a good decision)</li>
<li>It seems that Image Capture has gotten significant improvements with 10.6 &#8212; I haven&#8217;t noticed this called out by any of the other reviews.  The UI is much more feature-full and even offers the option to delete images and videos from my iPhone.  (If this was in the previous version, I hadn&#8217;t noticed it.)</li>
<li>Boot time is noticeably faster.</li>
<li>I ended up saving about 10GB of disk space as part of the upgrade</li>
</ul>
<div>I&#8217;ve only played with Snow Leopard for a few hours, so I expect to find out more things as I get more time with it.</div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/theory14.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/theory14.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/theory14.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/theory14.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/theory14.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/theory14.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/theory14.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/theory14.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/theory14.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/theory14.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/theory14.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/theory14.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/theory14.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/theory14.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theory14.wordpress.com&amp;blog=18126143&amp;post=11&amp;subd=theory14&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://theory14.wordpress.com/2009/08/30/snow-leopard-first-impressions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ecdb3a0117997e24f2b24e3ecdb2f582?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">theory14</media:title>
		</media:content>
	</item>
		<item>
		<title>Getting mail on my iPhone</title>
		<link>http://theory14.wordpress.com/2009/06/26/getting-mail-on-my-iphone/</link>
		<comments>http://theory14.wordpress.com/2009/06/26/getting-mail-on-my-iphone/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 16:50:00 +0000</pubDate>
		<dc:creator>theory14</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://theory14.wordpress.com/2009/06/26/getting-mail-on-my-iphone</guid>
		<description><![CDATA[We got our iPhones 3GS on the launch day, and I spent part of the weekend getting mail working right. I did hit a few issues, but I have everything working acceptable now. This is all based on my previous &#8230; <a href="http://theory14.wordpress.com/2009/06/26/getting-mail-on-my-iphone/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theory14.wordpress.com&amp;blog=18126143&amp;post=10&amp;subd=theory14&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We got our iPhones 3GS on the launch day, and I spent part of the weekend getting mail working right.  I did hit a few issues, but I have everything working acceptable now.  This is all based on my previous post on <a href="http://blog.theory14.net/2009/06/openbsd-smtp-authtls-imaps-proxy.html">configuring a mail proxy</a>.</p>
<p>The issues I hit were:
<div>
<ul>
<li>Can&#8217;t seem to get the phone to connect on a user specified port for either IMAP or SMTP.  There are options for that, but I could never get my phone to (reliably) use them.</li>
<li>I could never get starttls to work with the iPhone.  Other clients, mail.app, worked just fine.  This is annoying, but not such a big deal.  The password for the login is still encrypted and the mail itself would normally be going outside of my systems anyway.</li>
<li>There is no &#8220;advanced&#8221; or &#8220;expert&#8221; UI for initially setting up email accounts on the iPhone (nor on mail.app).  This means that you have to wait as the phone walks through a lot of default mail options (ports to connect on, SSL or no SSL, etc) before you get a chance to adjust anything.</li>
</ul>
<div>So here are the steps.  There was some bit of trial and error, but I tried to record everything accurately.</div>
<div>
<ol>
<li>Before you try to setup any mail accounts on the phone, you should import all of your self signed certs to the phone.  To do this, simply upload all of the certs, renamed to <tt>something.crt</tt> to a web server and then load that site in Safari on your iPhone.   That means to put the <tt>.crt </tt>files into a directory you can access from your phone (or any browser), not to use the certs to SSL encrypt the site.  When you load each of those files in Safari (like going to http:///your.site.tld/file/mycert.crt), you&#8217;ll get a new application to import the cert into your profile.</li>
<li>Now create the accounts on the iPhone as you would otherwise.  The settings for your connections are:<br />
<table border="1">
<tbody>
<tr>
<td><b>Connection</b></td>
<td><b>Username</b></td>
<td><b>Authentication</b></td>
<td><b>SSL</b></td>
</tr>
<tr>
<td>Incoming</td>
<td>username</td>
<td>Password</td>
<td>On</td>
</tr>
<tr>
<td>Outgoing</td>
<td>username@domain</td>
<td>CRAM-MD5</td>
<td>Off</td>
</tr>
</tbody>
</table>
<p></li>
<li>When making the initial IMAPS connection, you will be prompted to accept the certificate.  Click to continue/accept the cert.  I would have thought that importing the certs to my phone&#8217;s profiles would have taken care of this, but it didn&#8217;t.  Of course there is probably some nuance of PKI that I don&#8217;t grok (feel free to enlighten me if you know the details).</li>
<li>After much waiting as the phone tries various incarnations of SMTP connections, you&#8217;ll get prompted to attempt to proceed un-encrypted.  Say NO here.  If you say &#8220;yes&#8221;it seems to screw up the IMAPS connection that is actually working fine at this point.</li>
<li>Now go into the mail settings and fix the SMTP connection to work right.  Turn off SSL and set the authentication to CRAM-MD5.</li>
<li>Open mail on the phone and you should mail working fine.  Try reading some of your mail and try sending some to make sure it all works right.</li>
</ol>
<div>That&#8217;s about it.  This is far from perfect, but seems to be working reliably and the boss (wife) approves.  If someone has details on how to make this better or more efficient, please let me know.</div>
<ol></ol>
</div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/theory14.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/theory14.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/theory14.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/theory14.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/theory14.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/theory14.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/theory14.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/theory14.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/theory14.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/theory14.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/theory14.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/theory14.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/theory14.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/theory14.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theory14.wordpress.com&amp;blog=18126143&amp;post=10&amp;subd=theory14&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://theory14.wordpress.com/2009/06/26/getting-mail-on-my-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ecdb3a0117997e24f2b24e3ecdb2f582?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">theory14</media:title>
		</media:content>
	</item>
		<item>
		<title>OpenBSD + SMTP AUTH/TLS + IMAPS Proxy</title>
		<link>http://theory14.wordpress.com/2009/06/16/openbsd-smtp-authtls-imaps-proxy/</link>
		<comments>http://theory14.wordpress.com/2009/06/16/openbsd-smtp-authtls-imaps-proxy/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 00:50:00 +0000</pubDate>
		<dc:creator>theory14</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://theory14.wordpress.com/2009/06/16/openbsd-smtp-authtls-imaps-proxy</guid>
		<description><![CDATA[Problem I want to securely access my home email from my newly ordered iPhone 3GS. Since my mail repository is at home (vs on some one&#8217;s webmail/freemail platform) and I want to be able to send email from my domain, &#8230; <a href="http://theory14.wordpress.com/2009/06/16/openbsd-smtp-authtls-imaps-proxy/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theory14.wordpress.com&amp;blog=18126143&amp;post=9&amp;subd=theory14&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span class="Apple-style-span" style="font-size:large;"><b>Problem</b></span>
<div></div>
<div>I want to securely access my home email from my newly ordered iPhone 3GS.  Since my mail repository is at home (vs on some one&#8217;s webmail/freemail platform) and I want to be able to send email from my domain, I need to connect from essentially anywhere to my home systems. </div>
<div></div>
<div><span class="Apple-style-span" style="font-size:large;"><b>Solution</b></span></div>
<div></div>
<div>I have an existing bastion host running <a href="http://www.openbsd.org/">OpenBSD</a> to which I added the mail functions.  Documentation that I found was a bit out dated or didn&#8217;t quite put everything together, so I&#8217;m putting it all together here.  This article is based on what is available with <a href="http://www.openbsd.org/45.html">OpenBSD 4.5</a>.</div>
<div></div>
<div>First, what are the different pieces in this puzzle?</div>
<div>
<ul>
<li>Retrieve/view mail:  I keep all of my mail on a server at home and provide access via IMAP(S).  I extended this by using <a href="http://www.dovecot.org/">dovecot</a> as an IMAP proxy on the bastion host.  This allows you to view your mail.</li>
<li>Sending mail:  Sendmail is the base MTA I&#8217;m using (it&#8217;s part of the base install of OpenBSD) and to get the secure authenticated connection for remotely sending mail, two different things are needed.
<ul>
<li>TLS:  For my purposes, this encrypts the connection via <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=starttls&amp;apropos=0&amp;sektion=0&amp;manpath=OpenBSD+Current&amp;arch=i386&amp;format=html">starttls(8)</a></li>
<li>Authentication:  This provides the ability to authenticate users and allow authenticated users to relay mail through the server.  This is done via cyrus-sasl.</li>
</ul>
</li>
</ul>
</div>
<p><b>Dovecot/IMAP Configuration</b>
<div></div>
<div>The configuration for dovecot is rather simple, but I never found it explicitly called out.  Acting as a proxy for a particular user is done as part of an entry in the user database. Larger installations with many users can use a database for this, but for a small handful of users, this is more easily done with a passwd-file.</div>
<div>
<ol>
<li>Install dovecot.  Either build it from source via ports or install the package.  See the <a href="http://www.openbsd.org/faq/faq15.html">OpenBSD FAQ</a> for how to do this.</li>
<li> In <tt>/etc/dovecot.conf</tt>, find the section specifying the password database as a passwd-file and uncomment it such that you end up with the following.  See <a href="http://wiki.dovecot.org/AuthDatabase/PasswdFile">AuthDatabase/PasswdFile</a> section of the dovecot wiki for more details.
<pre># passwd-like file with specified location# passdb passwd-file {# [scheme=] [username_format=]# args = username_format=%n /etc/dovecot.passwd} </pre>
</li>
<li>Create the passwd file, <tt>/etc/dovecot.passwd</tt>, in your favorite editor filling in the fields as described in the <a href="http://wiki.dovecot.org/AuthDatabase/PasswdFile">Passwd-file</a> documentation.  You should end up with something that looks like the following:
<pre>fred:{PLAIN-MD5}b40ac4fe40284c9de587b992c08f167::::::proxy=y host=my.proxy.domain.tld port=143</pre>
<p>The last fields, the <a href="http://wiki.dovecot.org/PasswordDatabase/ExtraFields/Proxy">extra field</a>s, are the ones that make the proxy actually work.  Note that the TLS/SSL options discussed in the dovecot documentation are only available in newer versions (1.2.rc4+) and not in the stable versions.  That means I&#8217;m stuck with an un-encrypted connection between my bastion host/proxy and my real mail server.  This isn&#8217;t the perfect solution, but I prefer using the proxy to just allowing a direct connection from anywhere on the internet to my internal servers.  Create the md5 passphrase hash with the <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=md5&amp;sektion=1&amp;arch=&amp;apropos=0&amp;manpath=OpenBSD+Current">md5(1)</a> command:
<pre>md5 -s password</pre>
</li>
<li>Configure dovecot to start at boot (if you didn&#8217;t when you installed it) and start up dovecot.  In <tt>/etc/rc.local</tt> add:
<pre>if [ -x /usr/local/sbin/dovecot ]; then<span class="Apple-tab-span" style="white-space:pre;"> </span>echo -n ' dovecot';  /usr/local/sbin/dovecotfi</pre>
</li>
</ol>
</div>
<p><b>Sendmail TLS Configuration</b>
<div></div>
<div>This is the easy part to write up.  Follow the steps in the <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=starttls&amp;apropos=0&amp;sektion=0&amp;manpath=OpenBSD+Current&amp;arch=i386&amp;format=html">starttls(8)</a> man page.  Remember, this just gives you encryption when connecting to send mail.</div>
<div></div>
<div><b>Sendmail Authentication</b></div>
<div></div>
<div>This requires installing the Cyrus-SASL libraries, configuring users and saslauthd, recompiling sendmail and configuring sendmail.</div>
<div>
<ol>
<li>Install cyrus-sasl.  Either build it from source via ports or install the package. See the<a href="http://www.openbsd.org/faq/faq15.html">OpenBSD FAQ</a> for how to do this.</li>
<li>Configure the sasl auth daemon for authentication from sendmail:
<pre>echo pwcheck_method: saslauthd &gt; /usr/local/lib/sasl2/Sendmail.conf</pre>
</li>
<li>Create users (these are the users and passwords for sending mail) with saslpasswd2(8) with the following command (you&#8217;ll be prompted for a password).  This will create <tt>/etc/sasldb2.db</tt>.  You will use <tt>username@domain</tt> as the username for authentication.
<pre>saslpasswd2 -c -u domain username</pre>
</li>
<li>Configure saslauthd to start at boot by adding the following to <tt>/etc/rc.local </tt>:
<pre>if [ -x /usr/local/sbin/saslauthd ]; then<span class="Apple-tab-span" style="white-space:pre;"> </span>echo -n ' saslauthd'; /usr/local/sbin/saslauthd -a getpwentfi</pre>
</li>
<li>Start saslauthd with <tt>/usr/local/sbin/saslauthd -a getpwent</tt></li>
<li>Rebuild sendmail with sasl support:
<ul>
<li>Add <tt>WANT_SMTPAUTH=YES</tt> to <tt>/etc/mk.conf</tt></li>
<li>If you don&#8217;t have the OpenBSD source code installed, install it.  See the OpenBSD FAQ for details on doing so if needed.</li>
<li>cd to <tt>/usr/src/gnu/usr.sbin/sendmail/</tt> and build and install sendmail with <tt>make clean obj depend &amp;&amp; make &amp;&amp; make install</tt></li>
</ul>
</li>
<li>Configure sendmail for all of the new options.  Edit <tt>/usr/share/sendmail/cf/openbsd-proto.mc</tt> as follows:
<ul>
<li>Uncomment (remove the &#8220;dnl&#8221; from the beginning of the line) the section for TSL/SSL support.
<pre>dnldnl TLS/SSL support; uncomment and read starttls(8) to use.dnldefine(`CERT_DIR', `MAIL_SETTINGS_DIR`'certs')dnldefine(`confCACERT_PATH', `CERT_DIR')dnldefine(`confCACERT', `CERT_DIR/mycert.pem')dnldefine(`confSERVER_CERT', `CERT_DIR/mycert.pem')dnldefine(`confSERVER_KEY', `CERT_DIR/mykey.pem')dnldefine(`confCLIENT_CERT', `CERT_DIR/mycert.pem')dnldefine(`confCLIENT_KEY', `CERT_DIR/mykey.pem')dnl</pre>
</li>
<li>Add the following options for SMTP AUTH.
<pre>dnldnl Set SMTP AUTH optionsdnldefine(`confAUTH_MECHANISMS',`PLAIN LOGIN CRAM-MD5 DIGEST-MD5')dnlTRUST_AUTH_MECH(`PLAIN LOGIN CRAM-MD5 DIGEST-MD5')dnldefine(`confAUTH_OPTIONS',`p,y')dnldefine(`confPRIVACY_FLAGS',`authwarnings,goaway')dnl</pre>
</li>
</ul>
</li>
<li>Rebuild the cf files and install them by:
<ul>
<li><tt>cd /usr/share/sendmail/cf</tt></li>
<li><tt>make distribution</tt></li>
</ul>
</li>
<li>Configure sendmail to listen for connections over the network (default configuration is to listen only on localhost) by adding <tt>sendmail_flags="-L sm-mta  -bd -q30m"</tt> to <tt>/etc/rc.conf.local</tt></li>
<li>Kill the running sendmail, source the new configuration options and restart sendmail:
<pre>kill `head -n1 /var/run/sendmail.pid`. /etc/rc.conf/usr/sbin/sendmail $sendmail_flags</pre>
</li>
</ol>
</div>
<p>That&#8217;s it!  You should now have everything setup and working.  In trouble shooting and testing my configuration, I found it very handy to watch traffic with tcpdump(8) with a command like <tt>tcpdump -n -s 1500 -vvvX port 25</tt> .
<div></div>
<div><i>Credits:</i></div>
<div>A good bit of the SMTP AUTH configuration steps where taken from <a href="http://www.dsrw.org/~dlg/sysadmin/sendmail/">http://www.dsrw.org/~dlg/sysadmin/sendmail/</a> which was written for OpenBSD 3.3.  Some things have changed by OpenBSD 4.5 partly compelling me to write this article.
<div></div>
<div></div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/theory14.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/theory14.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/theory14.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/theory14.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/theory14.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/theory14.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/theory14.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/theory14.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/theory14.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/theory14.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/theory14.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/theory14.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/theory14.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/theory14.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theory14.wordpress.com&amp;blog=18126143&amp;post=9&amp;subd=theory14&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://theory14.wordpress.com/2009/06/16/openbsd-smtp-authtls-imaps-proxy/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ecdb3a0117997e24f2b24e3ecdb2f582?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">theory14</media:title>
		</media:content>
	</item>
		<item>
		<title>Squid Proxy for Security</title>
		<link>http://theory14.wordpress.com/2009/06/10/squid-proxy-for-security/</link>
		<comments>http://theory14.wordpress.com/2009/06/10/squid-proxy-for-security/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 23:53:00 +0000</pubDate>
		<dc:creator>theory14</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://theory14.wordpress.com/2009/06/10/squid-proxy-for-security</guid>
		<description><![CDATA[The Problem It&#8217;s pretty standard these days for everyone connected to the Internet to sit behind some kind of firewall. These firewalls are typically configured to block/filter inbound connections, but allow any connections initiated from inside. This is great for &#8230; <a href="http://theory14.wordpress.com/2009/06/10/squid-proxy-for-security/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theory14.wordpress.com&amp;blog=18126143&amp;post=8&amp;subd=theory14&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div><span class="Apple-style-span" style="font-size:large;"><b>The Problem</b></span></div>
<div></div>
<p>It&#8217;s pretty standard these days for everyone connected to the Internet to sit behind some kind of firewall.  These firewalls are typically configured to block/filter inbound connections, but allow any connections initiated from inside.  This is great for blocking the many scans and connection attempts from the outside, but misses what is the more common risk scenario.
<div>
<div>Some non-trivial number of exploits aren&#8217;t sourced by a connection initiated externally.   Things such as spyware get introduced into a system via some means such as email attachments or, more commonly, a web browser exploit and a compromised web site.  Once installed, they collect data and perform their real nastiness by sending that collected data back to its owner.  All of this is done through connections allowed by the firewall policy. </div>
<div></div>
<div>Another issue is that once a nefarious soul has gained access/control of a machine, they&#8217;d like to use it to make connections to other machines to conduct various kinds of mischief.  Control of the machine is often through some kind of bot that (a) must connect to some control site to get instructions and (b) must be able to make outbound connections to effect trouble on others.</div>
<div></div>
<div><span class="Apple-style-span" style="font-size:large;"><b>A Solution</b></span></div>
<div></div>
<div>A solution to this is to block all outbound access by default and then only allow what is very specifically needed &#8212; only specific hosts can make outbound connections on specific ports to specific destinations.  This can seriously limit the usefulness of your systems to a possible attacker.  If they can&#8217;t call home to get commands, can&#8217;t ship your personal information back to their home base and can&#8217;t use your machine(s) to attack others, your systems just aren&#8217;t very interesting.  The problem is that without the ability to connect to various places on the internet, your machine(s) become very un-interesting to you, too.</div>
<div></div>
<div>My solution to this is to proxy all of the outbound connections through one host and only allow that one host to make the out bound connections.  This provides several advantages:</div>
<div>
<ul>
<li>Regardless of hosts coming and going on my network, I don&#8217;t have to constantly update firewall rules.</li>
<li>With a proxy, I can log all of the outbound connections.  This provides an audit source and a place to see what is really requested when outbound connections are made.</li>
<li>For a bot or spyware to make an outbound connection, they must understand how to use a proxy and know how to grab the proxy settings.  Though this isn&#8217;t necessarily very hard, but it is another hoop that must be jumped through.</li>
<li>If I haven&#8217;t specifically configured my proxy for a given protocol, then outbound connections aren&#8217;t possible, stopping the exploit from being effective.</li>
</ul>
<div>For many years, I&#8217;ve used <a href="http://www.squid-cache.org/">squid</a> as a cacheing proxy to locally cache web content.  This made squid an obvious choice to extend for security purposes.  The configuration comprised of three steps.  First, configure squid to proxy the various protocols I needed to proxy.  Second, configure my firewall to only allow the host running squid to have outbound access as needed.  Third, configure various clients to use the proxy.</div>
<div></div>
<div><b><span class="Apple-style-span" style="font-size:large;">Squid Configuration</span></b></div>
<div></div>
<div>I&#8217;ll assume you have a working squid installation that is already proxying http(s) and ftp traffic.  If not, there are a number of how-tos and other documents available on the web for configuring squid for this (and they will do a much better job than I will).</div>
<div></div>
<div>My configuration supports proxying AIM, Yahoo! IM, Google IM/Gtalk (Jabber), MSN Messenger, and rsync.  Simply add the following to your squid.conf and restarting squid should allow these protocols to be proxied.   I&#8217;ve collected some of these configurations from various places on the web, so I can&#8217;t claim credit for figuring it all out.</div>
<div></div>
<div>In your <tt>squid.conf</tt> file add:</div>
<pre>################## allow AIM access#acl AIM_ports port 5190acl AIM_domains dstdomain .oscar.aol.com .blue.aol.comacl AIM_domains dstdomain .messaging.aol.com .aim.comacl AIM_hosts dstdomain login.oscar.aol.com login.glogin.messaging.aol.comacl AIM_nets dst 64.12.0.0/255.255.0.0acl AIM_methods method CONNECThttp_access allow AIM_methods AIM_ports AIM_netshttp_access allow AIM_methods AIM_ports AIM_hostshttp_access allow AIM_methods AIM_ports AIM_domains#################

################## allow Google IM (Gtalk) access#acl GTALK_ports port 5222 5050acl GTALK_domains dstdomain .google.comacl GTALK_hosts dstdomain talk.google.comacl GTALK_methods method CONNECThttp_access allow GTALK_methods GTALK_ports GTALK_hostshttp_access allow GTALK_methods GTALK_ports GTALK_domains#################

################## allow MSN Access#acl MSN_ports port 1863 443 1503acl MSN_domains dstdomain .microsoft.com .hotmail.com .live.com .msft.net .msn.com .passport.comacl MSN_hosts dstdomain messenger.hotmail.comacl MSN_nets dst 207.46.111.0/255.255.255.0acl MSN_methods method CONNECThttp_access allow MSN_methods MSN_ports MSN_hosts#################

################## allow Yahoo IM Access#acl YIM_ports port 5050acl YIM_domains dstdomain .yahoo.com .yahoo.co.jpacl YIM_hosts dstdomain scs.msg.yahoo.com cs.yahoo.co.jpacl YIM_methods method CONNECThttp_access allow YIM_methods YIM_ports YIM_hostshttp_access allow YIM_methods YIM_ports YIM_domains#################

################## allow rsync proxy#acl RSYNC_ports port 873acl RSYNC_methods method CONNECThttp_access allow RSYNC_methods RSYNC_ports################</pre>
<p></div>
<div>Now the rest is up to configuring your firewall appropriately and setting your various clients to use the proxy.</div>
</div>
<div></div>
<div></div>
<div></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/theory14.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/theory14.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/theory14.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/theory14.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/theory14.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/theory14.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/theory14.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/theory14.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/theory14.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/theory14.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/theory14.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/theory14.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/theory14.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/theory14.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theory14.wordpress.com&amp;blog=18126143&amp;post=8&amp;subd=theory14&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://theory14.wordpress.com/2009/06/10/squid-proxy-for-security/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ecdb3a0117997e24f2b24e3ecdb2f582?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">theory14</media:title>
		</media:content>
	</item>
	</channel>
</rss>
