<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Stan Barber » Blog</title>
	
	<link>http://www.stanbarber.com</link>
	<description>Implementing Internet Ideals Pragmatically</description>
	<lastBuildDate>Mon, 02 Aug 2010 08:08:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/stanbarber/cQWZ" /><feedburner:info uri="stanbarber/cqwz" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license><image><link>http://creativecommons.org/licenses/by-sa/3.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><feedburner:emailServiceId>stanbarber/cQWZ</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>MRTG 2.16 and High Speed Interfaces</title>
		<link>http://feedproxy.google.com/~r/stanbarber/cQWZ/~3/1X1aVqCQO04/mrtg-2-16-and-high-speed-interfaces</link>
		<comments>http://www.stanbarber.com/network-management/mrtg-2-16-and-high-speed-interfaces#comments</comments>
		<pubDate>Wed, 12 May 2010 20:57:03 +0000</pubDate>
		<dc:creator>Stan Barber</dc:creator>
				<category><![CDATA[Network Management]]></category>
		<category><![CDATA[Apple Time Capsule]]></category>
		<category><![CDATA[cfgmaker]]></category>
		<category><![CDATA[Cisco Catalyst 2960]]></category>
		<category><![CDATA[IOS]]></category>
		<category><![CDATA[MRTG]]></category>
		<category><![CDATA[RFC 1067]]></category>
		<category><![CDATA[SNMP]]></category>
		<category><![CDATA[SNMPv2c]]></category>
		<category><![CDATA[SNMPv3]]></category>

		<guid isPermaLink="false">http://www.stanbarber.com/?p=440</guid>
		<description><![CDATA[If you have a need to have MRTG properly grab input and output usage information from network switches or routers, you need to be aware that SNMP counters for the original 32-bit counters representing this data can roll-over (circle back to zero) during the time interval between polling by MRTG. This is not a limitation [...]]]></description>
			<content:encoded><![CDATA[<p>If you have a need to have <a href="http://oss.oetiker.ch/mrtg/">MRTG</a> properly grab input and output usage information from network switches or routers, you need to be aware that SNMP counters for the original 32-bit counters representing this data can roll-over (circle back to zero) during the time interval between polling by MRTG. This is not a limitation of MRTG per se, but illustrates that port speeds have increased from less than 1 Mb/sec to 10 Gb/sec (or more) since SNMP was first standardized by the IETF in 1988 (<a href="http://www.ietf.org/rfc/rfc1067.txt">RFC 1067</a>). OIDs had to be added that use 64-bit counters to handle this.  This posting describes how to do this in MRTG 2.16.</p>
<p><i>cfgmaker</i> has logic in it that will access these larger counters, but only if you use SNMP version 2c or 3 when querying for them. To use SNMP version 2c, you add the option <code>--snmp-options=:::::2</code> to the command line before the target (e.g. <code>community@router-name</code>) when you use <i>cfgmaker</i>. Please note that there are devices (like the Apple Time Capsule) which do not support the 64-bit counters, so using SNMP version 2c for them will produce a configuration that generates no results when MRTG is run. To determine how best to proceed, I run <i>cfgmaker</i> twice (one with the option and one without) and compare the two configuration files. I use the SNMP version 2c file when it will generate results and the SNMP version 1 file otherwise.</p>
<p>If you have a requirement to use SNMP version 3, the options on the command line are  <code>--enablesnmpv3 --snmp-options:::::3</code>. You also need to specify the username of the SNMP version 3 user that is authorized to use SNMP version 3 to query the device.</p>
<p>Here is an example using SNMP version 3 and a <a href="http://www.amazon.com/gp/product/B000C1AZN4?ie=UTF8&#038;tag=wwwstanbarber-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B000C1AZN4">Cisco Catalyst 2960 Switch</a> running IOS 12.2(53)SE2.</p>
<ul>
<li>First, insure that the switch is properly configured to answer SNMP version 3 queries. For this example, no authentication will be used. Here are the IOS command to setup SNMP version 3 on the switch.</li>
<blockquote><p><code><br />
snmp-server group mrtggroup v3<br />
snmp-server user mrtguser mrtggroup v3<br />
</code></p></blockquote>
<li>Next, use <i>cfgmaker</i> to generate the mrtg configuration file.</li>
<blockquote><p><code><br />
cfgmaker --enablesnmpv3 --snmpoptions=:::::3 -username mrtguser switch-hostname > switch-hostname.cfg<br />
</code></p></blockquote>
</ul>
<p>The configuration file generated when used by MRTG will query the switch using SNMP version 3 retrieving data from the 64-bit counters.</p>
<p>I want to thank Jeff Chandler for commenting about MRTG and SNMP version 3 on another post. It made me curious enough to figure it out and write it up for this posting.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/MtFYz_Fh9gAMn_RO8MghburCmSU/0/da"><img src="http://feedads.g.doubleclick.net/~a/MtFYz_Fh9gAMn_RO8MghburCmSU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/MtFYz_Fh9gAMn_RO8MghburCmSU/1/da"><img src="http://feedads.g.doubleclick.net/~a/MtFYz_Fh9gAMn_RO8MghburCmSU/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=1X1aVqCQO04:aFnJY0wFrwY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=1X1aVqCQO04:aFnJY0wFrwY:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=1X1aVqCQO04:aFnJY0wFrwY:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=1X1aVqCQO04:aFnJY0wFrwY:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=1X1aVqCQO04:aFnJY0wFrwY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=1X1aVqCQO04:aFnJY0wFrwY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=1X1aVqCQO04:aFnJY0wFrwY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=1X1aVqCQO04:aFnJY0wFrwY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=1X1aVqCQO04:aFnJY0wFrwY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=1X1aVqCQO04:aFnJY0wFrwY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=1X1aVqCQO04:aFnJY0wFrwY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=1X1aVqCQO04:aFnJY0wFrwY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=1X1aVqCQO04:aFnJY0wFrwY:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=1X1aVqCQO04:aFnJY0wFrwY:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=1X1aVqCQO04:aFnJY0wFrwY:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=1X1aVqCQO04:aFnJY0wFrwY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=1X1aVqCQO04:aFnJY0wFrwY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=1X1aVqCQO04:aFnJY0wFrwY:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=1X1aVqCQO04:aFnJY0wFrwY:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/stanbarber/cQWZ/~4/1X1aVqCQO04" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.stanbarber.com/network-management/mrtg-2-16-and-high-speed-interfaces/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.stanbarber.com/network-management/mrtg-2-16-and-high-speed-interfaces</feedburner:origLink></item>
		<item>
		<title>Monitoring Apple Time Capsule with Nagios</title>
		<link>http://feedproxy.google.com/~r/stanbarber/cQWZ/~3/8ozApBFfDiY/monitoring-apple-time-capsule-with-nagios</link>
		<comments>http://www.stanbarber.com/network-management/monitoring-apple-time-capsule-with-nagios#comments</comments>
		<pubDate>Tue, 11 May 2010 17:33:58 +0000</pubDate>
		<dc:creator>Stan Barber</dc:creator>
				<category><![CDATA[Network Management]]></category>
		<category><![CDATA[802.11]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[on-line backup]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[SNMP]]></category>
		<category><![CDATA[Time Capsule]]></category>
		<category><![CDATA[Time Machine]]></category>

		<guid isPermaLink="false">http://www.stanbarber.com/?p=452</guid>
		<description><![CDATA[Backups of desktop systems should be a standard feature for all IT environments. For users of OS X on Apple Systems, this requirement is addressed through Time Machine, a built-in backup system that runs transparently in the background. For home users and small businesses (or even larger businesses with few Apple Desktops), Apple offers an [...]]]></description>
			<content:encoded><![CDATA[<p>Backups of desktop systems should be a standard feature for all IT environments. For users of OS X on Apple Systems, this requirement is addressed through <a href="http://www.apple.com/macosx/what-is-macosx/time-machine.html">Time Machine</a>, a built-in backup system that runs transparently in the background. For home users and small businesses (or even larger businesses with few Apple Desktops), Apple offers an archiving system (which also doubles as a wireless access point when needed) called <a href="http://www.amazon.com/gp/product/B002TLTGGM?ie=UTF8&#038;tag=wwwstanbarber-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B002TLTGGM">Time Capsule</a><img src="http://www.assoc-amazon.com/e/ir?t=wwwstanbarber-20&#038;l=as2&#038;o=1&#038;a=B002TLTGGM" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />. This posting shows how to monitor the availability of Time Capsule using <a href="http://www.nagios.org/">Nagios</a>, a popular open-source network monitoring and alerting system. To learn more about Nagios, I recommend the book <a href="http://www.amazon.com/gp/product/1593271794?ie=UTF8&#038;tag=wwwstanbarber-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1593271794">Nagios: System and Network Monitoring</a>.<img src="http://www.assoc-amazon.com/e/ir?t=wwwstanbarber-20&#038;l=as2&#038;o=1&#038;a=1593271794" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> Be sure to get the latest edition.</p>
<p>Nagios organizes monitoring in to two categories: host and services. Host availability is monitored by configuring a host object. For the services to the monitored on the host, a service object is created for those services of interest. Generally, the host object once installed and activated will using <em>ping</em> to determine the availability of the host. Service objects will generally use a plug-in, sometimes a custom plug-in, to determine the availability of services on that host. For the purposes of this posting, I am using a widely available plug-in called <em>check_ifstatus</em> which can be installed a part of the FreeBSD ports <em>nagios-plugins</em> package. If installed from the FreeBSD ports collection, the plug-in will automatically be configured for use by Nagios and can be used in a service object or template directly.</p>
<p>When adding a new device type to Nagios, it&#8217;s important to consider how that device will be represented on Nagios&#8217; web pages. This means selecting an appropriate icon, vrml image and statusmap image to represent the device. The FreeBSD ports collection comes with a set of logos that cover most common devices called <em>nagios-base-logos</em>. For the Time Capsule, I want to use an icon that looked like the device. I found a satisfactory one at <a href="http://elevatorhappyfun.deviantart.com/art/Time-Machine-and-Capsule-Icons-75263275">deviantArt by ElevatorHappyFun</a>. Nagios uses logos that are 40&#215;40 pixels, so I use Photoshop to resize the icon of the Time Capsule to that size (this is in the Image menu in Photoshop) and then (based on guidance from the <a href="http://wiki.nagios.org/index.php/Status_Map_Images">Nagios Wiki</a> ) I change the image mode to Indexed from RGB format (also in the Image menu). Because the Time Capsule is a long short box, there is a lot of blank space above the box. That&#8217;s ok. The image needs to be square to work properly with Nagios. This work is now saved as a PNG file (I call it <em>time-capsule40.png</em>), transferred to the Nagios server and installed in the Nagios image file location (which on FreeBSD is <em>/usr/local/www/nagios/images/logos</em> by default). The final step is to create another version of the icon in GD2 format. When the <em>gd</em> FreeBSD port is installed (as part of installing Nagios), <em>pngtogd2</em> is also installed. I do the conversion by entering the command line <code>pngtogd2 time-capsule40.png time-capsule.gd2 0 1</code> to create an uncompressed GD2 formatted icon file (<a href="http://support.nagios.com/knowledgebase/faqs/index.php?option=com_content&amp;view=article&amp;id=52&amp;catid=35&amp;faq_id=97&amp;expand=false&amp;showdesc=true">The Nagios FAQ</a> suggests it be uncompressed).</p>
<p>To add the host to Nagios, I create a template for Time Capsule devices (I have three in my network) and then create a host object for each Time Capsule referencing that template. Here is the template entry:</p>
<blockquote><p><code><br />
define host{<br />
name                            apple-time-capsule<br />
icon_image                      time-capsule40.png<br />
statusmap_image                 time-capsule.gd2<br />
vrml_image                      time-capsule40.png<br />
use                             generic-switch<br />
register                        0<br />
}<br />
</code></p></blockquote>
<p>Because I am using Nagios 3.2.1, I can take advantage of a new feature in Nagios 3 by putting the information on the images directly in the host template. The old approach of using a hostextinfo object still works as well, but is deprecated in Nagios 3 and will likely no longer work when Nagios 4 comes out.</p>
<p>With the host template in place, I now add the three Time Capsules in my network using these objects:</p>
<blockquote><p><code><br />
define host{<br />
use                     apple-time-capsule<br />
host_name               red-tc<br />
alias                   Red Time Campsule<br />
address                 192.0.2.2<br />
hostgroups              wireless-ap<br />
parents                 blue-tc<br />
}<br />
</code></p></blockquote>
<blockquote><p><code><br />
define host{<br />
use                     apple-time-capsule<br />
host_name               blue-tc<br />
alias                   Blue Time Campsule<br />
address                 192.0.2.3<br />
hostgroups              wireless-ap<br />
parents                 switch<br />
}<br />
</code></p></blockquote>
<blockquote><p><code><br />
define host{<br />
use                     apple-time-capsule<br />
host_name               green-tc<br />
alias                   Green Time Campsule<br />
address                 192.0.2.4<br />
hostgroups              wireless-ap<br />
parents                 blue-tc<br />
}<br />
</code></p></blockquote>
<p>Besides host availability, I want to know that all the interfaces in the Time Capsule are operational. To do that, I am using the <em>check_ifstatus</em> plug-in. Here is the service object to activate this checking:</p>
<blockquote><p><code><br />
define service {<br />
service_description     Network Interface Status<br />
check_command   check_ifstatus!public<br />
use     network-service<br />
host_name       red-tc,green-tc,blue-tc<br />
}<br />
</code></p></blockquote>
<p>Now, with a restart of Nagios, these three Time Capsules will be checked for availability with <em>ping</em> and have the status of the interfaces checked using <em>check_ifstatus</em> using SNMP version 1 and a community of <em>public</em>.</p>
<p>Logging data for service testing results (when everything is working properly) should look like this:</p>
<blockquote><p><code><br />
[05-11-2010 00:00:00] CURRENT SERVICE STATE: red-tc;Network Interface Status;OK;HARD;1;OK: host '192.0.2.2', interfaces up: 6, down: 0, dormant: 0, excluded: 0, unused: 0<br />
[05-11-2010 00:00:00] CURRENT SERVICE STATE: green-tc;Network Interface Status;OK;HARD;1;OK: host '192.0.2.4', interfaces up: 6, down: 0, dormant: 0, excluded: 0, unused: 0<br />
[05-11-2010 00:00:00] CURRENT SERVICE STATE: blue-tc;Network Interface Status;OK;HARD;1;OK: host '192.0.2.3', interfaces up: 7, down: 0, dormant: 0, excluded: 0, unused: 0<br />
</code></p></blockquote>
<p><strong>blue-tc</strong> shows 7 interfaces because  its wan interface is in use. This port is not used on the other two since they are being used to extend an existing wireless network. Two other configuration notes:</p>
<ol>
<li>The Time Capsules are configured with static IP addresses. While not strictly required, I don&#8217;t want to have to depend on DNS resolution in order to monitor devices on my network, so I choose to statically configure devices that are not portable.</li>
<li>The Time Capsules are configured to respond to SNMP queries (version 1 or 2c only) using the community <em>public</em>.</li>
</ol>
<p>Now, I am able to see the Time Capsules in my status map as well as get notices from Nagios should any interface go down any of the Time Capsules become unavailable.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/hbatdKRpLYBD_Z1OCCJTuvQCazc/0/da"><img src="http://feedads.g.doubleclick.net/~a/hbatdKRpLYBD_Z1OCCJTuvQCazc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/hbatdKRpLYBD_Z1OCCJTuvQCazc/1/da"><img src="http://feedads.g.doubleclick.net/~a/hbatdKRpLYBD_Z1OCCJTuvQCazc/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=8ozApBFfDiY:_Xp2CnqxVjc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=8ozApBFfDiY:_Xp2CnqxVjc:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=8ozApBFfDiY:_Xp2CnqxVjc:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=8ozApBFfDiY:_Xp2CnqxVjc:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=8ozApBFfDiY:_Xp2CnqxVjc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=8ozApBFfDiY:_Xp2CnqxVjc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=8ozApBFfDiY:_Xp2CnqxVjc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=8ozApBFfDiY:_Xp2CnqxVjc:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=8ozApBFfDiY:_Xp2CnqxVjc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=8ozApBFfDiY:_Xp2CnqxVjc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=8ozApBFfDiY:_Xp2CnqxVjc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=8ozApBFfDiY:_Xp2CnqxVjc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=8ozApBFfDiY:_Xp2CnqxVjc:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=8ozApBFfDiY:_Xp2CnqxVjc:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=8ozApBFfDiY:_Xp2CnqxVjc:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=8ozApBFfDiY:_Xp2CnqxVjc:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=8ozApBFfDiY:_Xp2CnqxVjc:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=8ozApBFfDiY:_Xp2CnqxVjc:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=8ozApBFfDiY:_Xp2CnqxVjc:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/stanbarber/cQWZ/~4/8ozApBFfDiY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.stanbarber.com/network-management/monitoring-apple-time-capsule-with-nagios/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.stanbarber.com/network-management/monitoring-apple-time-capsule-with-nagios</feedburner:origLink></item>
		<item>
		<title>Using the Experimental Feature if-filter in MRTG 2.16 cfgmaker</title>
		<link>http://feedproxy.google.com/~r/stanbarber/cQWZ/~3/NHdO13ksRZ8/using-the-experimental-feature-if-filter-in-mrtg-2-16-cfgmaker</link>
		<comments>http://www.stanbarber.com/network-management/using-the-experimental-feature-if-filter-in-mrtg-2-16-cfgmaker#comments</comments>
		<pubDate>Fri, 23 Apr 2010 03:17:22 +0000</pubDate>
		<dc:creator>Stan Barber</dc:creator>
				<category><![CDATA[Network Management]]></category>
		<category><![CDATA[Catalyst 6500]]></category>
		<category><![CDATA[Cisco Systems]]></category>
		<category><![CDATA[Juniper]]></category>
		<category><![CDATA[LEARN]]></category>
		<category><![CDATA[MRTG]]></category>
		<category><![CDATA[MX-Series]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[SETG]]></category>
		<category><![CDATA[SNMP]]></category>

		<guid isPermaLink="false">http://www.stanbarber.com/?p=289</guid>
		<description><![CDATA[I have been using the MRTG package for many years and it remains a quick and easy way to collect longitudinal data from network devices that support SNMP (and it can be extended to do more, but that&#8217;s a topic for a future posting). In this post, I am writing about some of the experimental [...]]]></description>
			<content:encoded><![CDATA[<p>I have been using the <a href="http://oss.oetiker.ch/mrtg/">MRTG</a> package for many years and it remains a quick and easy way to collect longitudinal data from network devices that support SNMP (and it can be extended to do more, but that&#8217;s a topic for a future posting). In this post, I am writing about some of the experimental features of MRTG in the current release 2.16. Keep in mind that these features are still under development and so information in this posting may be out of date at some future time. I will endeavor to update this posting as things change to keep it current.</p>
<p>At its heart, MRTG is a polling engine and is usually used to grab two scaler data items (usually via SNMP) which by default are added to  PNG-based graphs which are made available though a web page. There have been several tutorials on how to setup MRTG. A good one is available in a book called <a href="http://www.amazon.com/gp/product/0130462101?ie=UTF8&#038;tag=wwwstanbarber-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0130462101">Open Source Network Administration (Prentice Hall Series in Computer Networking and Distributed Systems)</a><img src="http://www.assoc-amazon.com/e/ir?t=wwwstanbarber-20&#038;l=as2&#038;o=1&#038;a=0130462101" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> and is available on the web as of this posting at <a href="http://www.informit.com/articles/article.aspx?p=102611&#038;seqNum=4">http://www.informit.com/articles/article.aspx?p=102611&#038;seqNum=4</a>. On FreeBSD, MRTG is available via The FreeBSD Ports collection in <em>/usr/ports/net-mgmt/mrtg</em> directory and can be installed from there very easily.</p>
<p>In this posting, I am using <em>cfgmaker</em> and <em>indexmaker</em>. Both come with the MRTG package and are useful ways to quicky generate the configuration files used by MRTG and then build a web page that can display the PNG-graphs generated when MRTG does its polling.</p>
<p>Recently, I was updating the pages I maintain for the <a href="http://www.gigapop.gen.tx.us">Southeast Texas GigaPOP (SETG)</a>, a consortium of higher-education institutions that make use of a Houston-area MAN to facilitate high-speed network connections among themselves and to the <a href="http://www.tx-learn.net">Lonestar Research and Education Network (LEARN)</a>. I had been using MRTG for years to plot the usage on the links that make up the MAN and wanted to update that installation to the latest software. Because the MAN make use of Cisco Catalyst 6500 switches and a Juniper MX-Series switch, I thought it would be great to make use of the new experimental features to make the usage information easier to navigate and eliminate information that would not be interesting to the consortium members.</p>
<p>The new experimental features in <em>cfgmaker</em> seem to be optimized for Cisco Systems gear and that made it very easy to customize the configuration file for the Cisco Catalyst 6500s in the SETG MAN. For these devices, I was primarily interested in reporting on the input and output usage on the physical interfaces. To create a configuration file just for those interfaces, I invoked <em>cfgmaker</em> using this command line: </p>
<blockquote><p><code>cfgmaker --ifdesc=alias --global 'options[_]:bits'  --global 'WriteExpires:Yes' --global 'IconDir:/icons/' --global 'WorkDir:/local/mrtg/data/devicename' --output='/local/mrtg/cfg/devicename.cfg'  --if-filter='((!$if_is_ciscovlan &#038;&#038; !$if_is_loopback &#038;&#038; $if_type!=53 &#038;&#038; $if_type!=1) &#038;&#038; $if_admin &#038;&#038; $if_oper)' --snmp-options=:::::2 community@device.gigapop.gen.tx.us</code></p></blockquote>
<p>The experimental feature exploited here is the <code>if-filter</code> directive.  In this particular case, I didn&#8217;t want anything related to Cisco VLANs, Loopbacks or devices of type 1 (a catch-all for types not specified in the SNMP standards)  or 53 (a virtual interface). I wanted the interfaces reported on to be  both administratively and operationally up. This generated a configuration file that contained only physical interfaces and that satisfied my requirements for these devices.</p>
<p>For the Juniper MX, it was harder because the SNMP device type reported for the management port and some other ports that were not of interest would not be covered by the same filter. So, I modified the filter for the Juniper to explicitly exclude the devices with descriptions that matched the names of the devices that were not of interest. The command line I used for it was this:</p>
<blockquote><p><code>cfgmaker --ifdesc=alias --global 'options[_]:bits'  --global 'WriteExpires:Yes' --global 'IconDir:/icons/' --global 'WorkDir:/local/mrtg/data/devicename' --output='/local/mrtg/cfg/devicename.cfg' --if-filter='((!$if_is_loopback &#038;&#038; $if_type!=53 &#038;&#038; $if_type!=1 &#038;&#038; $if_type!=135 &#038;&#038; ($if_description !~ /em|fxp|pd|pe|gr|ip|vt|mt|pd/)) &#038;&#038; $if_admin &#038;&#038; $if_oper)' --snmp-options=:::::2 community@devicename.gigapop.gen.tx.us</code></p></blockquote>
<p>Here I added device type 135 (Layer 2 VLAN using 802.1Q)  and used the <code>$if_description</code> along with a Perl pattern binding operator to eliminiate those devices with descriptions that were not of interest.</p>
<p>After I updated mrtg to use the new configuration files in its polling, I was ready to use <em>indexmaker</em> to build the index pages. The only thing I was doing different from the default here is setting the title of the page. The command line looks like this:</p>
<blockquote><p><code>indexmaker --title="Devicename Node" /local/mrtg/cfg/devicename.cfg</code></p></blockquote>
<p>The results of all this work is available at <em><a href="http://www.gigapop.gen.tx.us/mrtg/">http://www.gigapop.gen.tx.us/mrtg/</a></em>. [Due to some idiosyncrasies with how IPv6 is currently configured for SETG, you may want to try the IPv4 URL which is <em><a href="http://www.ipv4.gigapop.gen.tx.us/mrtg/">http://www.ipv4.gigapop.gen.tx.us/mrtg/</a></em>.]</p>
<p>Of course, there are more experimental features available in MRTG than <code>if-filter</code>, but it was the one I thought most interesting and about which I could not find much information in other blogs. I do hope that the MRTG team will keep it in the software as they continue to develop the next release of MRTG.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/F7QiqYXiAhSi0Vzhvg3zmOJ0C38/0/da"><img src="http://feedads.g.doubleclick.net/~a/F7QiqYXiAhSi0Vzhvg3zmOJ0C38/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/F7QiqYXiAhSi0Vzhvg3zmOJ0C38/1/da"><img src="http://feedads.g.doubleclick.net/~a/F7QiqYXiAhSi0Vzhvg3zmOJ0C38/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=NHdO13ksRZ8:YWMVKfghjtU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=NHdO13ksRZ8:YWMVKfghjtU:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=NHdO13ksRZ8:YWMVKfghjtU:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=NHdO13ksRZ8:YWMVKfghjtU:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=NHdO13ksRZ8:YWMVKfghjtU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=NHdO13ksRZ8:YWMVKfghjtU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=NHdO13ksRZ8:YWMVKfghjtU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=NHdO13ksRZ8:YWMVKfghjtU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=NHdO13ksRZ8:YWMVKfghjtU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=NHdO13ksRZ8:YWMVKfghjtU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=NHdO13ksRZ8:YWMVKfghjtU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=NHdO13ksRZ8:YWMVKfghjtU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=NHdO13ksRZ8:YWMVKfghjtU:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=NHdO13ksRZ8:YWMVKfghjtU:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=NHdO13ksRZ8:YWMVKfghjtU:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=NHdO13ksRZ8:YWMVKfghjtU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=NHdO13ksRZ8:YWMVKfghjtU:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=NHdO13ksRZ8:YWMVKfghjtU:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=NHdO13ksRZ8:YWMVKfghjtU:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/stanbarber/cQWZ/~4/NHdO13ksRZ8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.stanbarber.com/network-management/using-the-experimental-feature-if-filter-in-mrtg-2-16-cfgmaker/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.stanbarber.com/network-management/using-the-experimental-feature-if-filter-in-mrtg-2-16-cfgmaker</feedburner:origLink></item>
		<item>
		<title>Creating Self-signed SSL Certificates on FreeBSD with OpenSSL</title>
		<link>http://feedproxy.google.com/~r/stanbarber/cQWZ/~3/Ax0YBCZY_C4/creating-self-signed-ssl-certificates-on-freebsd-with-openssl</link>
		<comments>http://www.stanbarber.com/freebsd/creating-self-signed-ssl-certificates-on-freebsd-with-openssl#comments</comments>
		<pubDate>Sat, 06 Mar 2010 23:57:27 +0000</pubDate>
		<dc:creator>Stan Barber</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[IMAP]]></category>
		<category><![CDATA[OpenSSL]]></category>
		<category><![CDATA[POP]]></category>
		<category><![CDATA[self-signed SSL certificates]]></category>
		<category><![CDATA[sendmail]]></category>

		<guid isPermaLink="false">http://www.stanbarber.com/?p=221</guid>
		<description><![CDATA[I think it is important to use SSL certificates to protect communications over the commodity Internet, but I don&#8217;t need to spend the money for an SSL certificate when it is strictly for my personal use. So, I use self-signed certificates for SMTP, IMAP, POP and Web sites that are just for me. It gives [...]]]></description>
			<content:encoded><![CDATA[<p>I think it is important to use SSL certificates to protect communications over the commodity Internet, but I don&#8217;t need to spend the money for an SSL certificate when it is strictly for my personal use. So, I use self-signed certificates for SMTP, IMAP, POP and Web sites that are just for me. It gives me an encrypted connection between my server and my laptop (especially handy when I am travelling). Here is how I do it.</p>
<p>There are basically two types of self-signed certificates: those that are signed by a local certificate authority and those that aren&#8217;t. To determine which is needed depends on the requirements of the specific application. In this blog, I will cover both types of certificates and list with which applications I use each type. By the way, if you need a reminder about the typography used in this post, <a href="/conventions">look here</a>.</p>
<h3>Creating a Self-Signed Certificate with a Certificate Authority</h3>
<p>Essentially, this requires creating two self-signed certificates: one for the Certificate Authority and one for the server certificate.</p>
<ol>
<li>Create a local certificate authority (CA) on the server. I typically do this in the <em>/etc/mail</em>. As the <strong>root</strong> user, type <code><strong>cd /etc/mail; mkdir CA; cd CA, chmod 700 .</strong></code> to create the CA root directory and protect it.</li>
<li> Type <code><strong>mkdir certs crl newcerts private; echo "01" &gt; serial; touch index.txt</strong></code> to create the required directories and files for the local CA.</li>
<li>Finish up by typing <code><strong>ln -s ../CA demoCA</strong></code> to insure the CA points to this working directory.</li>
<li>Now, it&#8217;s time to create the CA certificate and key. I set it to be valid for the next 3650 days instead of the default 365. Type <code>openssl req -nodes -new -days 3650 -x509 -keyout private/cakey.pem -out cacert.pem</code> and here is a sample session that shows the dialogue produced by this command if run on a host called <em>shemp.academ.com</em>:
<pre>Generating a 1024 bit RSA private key
.........++++++
...............................++++++
writing new private key to 'private/cakey.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:Texas
Locality Name (eg, city) []:Houston
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Academ
Organizational Unit Name (eg, section) []:SSL Certs
Common Name (eg, YOUR name) []:shemp.academ.com
Email Address []:postmaster@shemp.academ.com
</pre>
</li>
<li>Type <code><strong>openssl req -nodes -new -x509 -keyout server.key -out server.ucrt</strong></code> to produce the SSL certificate. Here is a sample session that shows the dialogue produced by this command if run on a host called <em>shemp.academ.com</em>
<pre>Generating a 1024 bit RSA private key
...++++++
................++++++
writing new private key to 'server.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:Texas
Locality Name (eg, city) []:Houston
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Academ
Organizational Unit Name (eg, section) []:SSL Certs
Common Name (eg, YOUR name) []:shemp.academ.com
Email Address []:postmaster@shemp.academ.com
</pre>
</li>
<li>A certificate request must now be created. Type <code><strong>openssl x509 -x509toreq -in server.ucrt -signkey server.key -out server.csr</strong></code> to create the certificate request. Here is a sample session that shows the dialogue produced by this command if run on a host called <em>shemp.academ.com</em>:
<pre>Getting request Private Key
Generating certificate request
</pre>
</li>
<li>Finally, sign this request with the CA certificate.  Again, I set it to be valid for the next 3650 days instead of the default 365 days. Type <code><strong>openssl ca -policy policy_anything -days 3650 -out server.crt -infiles server.csr</strong></code> to generate the final signed certificate. Once again, the sample session on <em>shemp.academ.com</em>:
<pre>Using configuration from /etc/ssl/openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 1 (0x1)
        Validity
            Not Before: Mar  6 22:46:03 2010 GMT
            Not After : Mar  3 22:46:03 2019 GMT
        Subject:
            countryName               = US
            stateOrProvinceName       = Texas
            localityName              = Houston
            organizationName          = Academ
            organizationalUnitName    = SSL Certs
            commonName                = shemp.academ.com
            emailAddress              = postmaster@shemp.academ.com
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                3C:37:11:AE:1F:60:44:F7:4D:08:90:BC:32:20:56:22:41:4E:C1:AF
            X509v3 Authority Key Identifier:
                keyid:64:FD:A2:0D:2C:87:06:17:DA:2E:BB:07:CE:D0:85:D2:BB:31:FD:18

Certificate is to be certified until Mar  3 22:46:03 2019 GMT (3650 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
</pre>
</li>
</ol>
<p>For software (like <em>sendmail</em>) where this type of certificate is required, the CA certificate (<em>cacert.pem</em>), server certificate (<em>server.crt</em>), and server key (<em>server.key</em>) are required. As long as the hostname in these certificates matches what the software expects the hostname to be, these same certificates can be used with <em>apache</em> and <em>cyrus-imapd</em>.</p>
<h3>Creating a Self-Signed Certificate without a Certificate Authority</h3>
<ol>
<li>Make a fresh directory in your home directory to use as a work space for this work and <code><strong>cd </strong></code> into it.</li>
<li>Next, protect that directory from access by others by typing <code><strong>chmod 700 . </strong></code> and only you (and <b>root</b>) will be able to get into the directory.</li>
<li>To generate the key, type <code><strong>openssl genrsa -des3 -out server.key 1024</strong></code>. <em>openssl</em> prompts for a password. I use something easy to remember since I only need it for a short period of time.</li>
<li>The next step is to create the self-signed certificate. Type <code><strong>openssl req -new -x509 -nodes -sha256 -days 3650 -key server.key -out server.crt</strong></code>. <em>openssl</em> prompts for several items of information. The County Name is the two letter<br />
Here is an example of making a self-signed certificate for the server named <code>shemp.academ.com</code>:</p>
<pre>Enter pass phrase for server.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:TX
Locality Name (eg, city) []:Houston
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Academ
Organizational Unit Name (eg, section) []:SSL Certificates
Common Name (eg, YOUR name) []:shemp.academ.com
Email Address []:postmaster@academ.com
</pre>
</li>
<li>You probably don&#8217;t want to type the password for the key every time you start up the service using the SSL certificate, so remove the password from the key.
<ul>
<li>First, make a copy of the key. Type <code><strong>cp server.key server.key.orig</strong></code>.</li>
<li> Remove the password from the key. Type <code><strong>openssl rsa -in server.key.orig -out server.key</strong></code></li>
</ul>
</li>
</ol>
<p>Use this key (<code>server.key</code>) and certificate (<code>server.crt</code>) for <em>apache</em> and <em>cyrus-imapd</em> on those systems where a SSL/TLS-enabled <em>sendmail</em> is <u>not</u> running.</p>
<h3>Learning More</h3>
<p>There are a number of good resources to read about SSL. Check <a href="http://www.openssl.org">http://www.openssl.org</a> for the current status of the openssl software. You can read more in the book <a href="http://www.amazon.com/gp/product/059600270X?ie=UTF8&amp;tag=wwwstanbarber-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=059600270X">Network Security with OpenSSL</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=wwwstanbarber-20&amp;l=as2&amp;o=1&amp;a=059600270X" border="0" alt="" width="1" height="1" /> where there is more extensive discussion of the process outlined in this posting in Chapter 5. A good web page on setting up <em>sendmail</em> to use STARTTLS properly is at <a href="http://www.technoids.org/starttlstut.html">http://www.technoids.org/starttlstut.html</a>. The Apache Project provides details on using these certificates on their web server software at <a href="http://httpd.apache.org/docs/2.1/ssl/ssl_faq.html">http://httpd.apache.org/docs/2.1/ssl/ssl_faq.html</a>. I have updated my <a href="/freebsd/setting-up-an-imap-server-on-freebsd-using-cyrus#TLSSSL">posting</a> about <em>cyrus</em> to include how to add TLS/SSL to it.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/_8xUH_rDl-aytPd3bTv9clIhvvg/0/da"><img src="http://feedads.g.doubleclick.net/~a/_8xUH_rDl-aytPd3bTv9clIhvvg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/_8xUH_rDl-aytPd3bTv9clIhvvg/1/da"><img src="http://feedads.g.doubleclick.net/~a/_8xUH_rDl-aytPd3bTv9clIhvvg/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=Ax0YBCZY_C4:oXl7S6XbZy4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=Ax0YBCZY_C4:oXl7S6XbZy4:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=Ax0YBCZY_C4:oXl7S6XbZy4:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=Ax0YBCZY_C4:oXl7S6XbZy4:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=Ax0YBCZY_C4:oXl7S6XbZy4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=Ax0YBCZY_C4:oXl7S6XbZy4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=Ax0YBCZY_C4:oXl7S6XbZy4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=Ax0YBCZY_C4:oXl7S6XbZy4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=Ax0YBCZY_C4:oXl7S6XbZy4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=Ax0YBCZY_C4:oXl7S6XbZy4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=Ax0YBCZY_C4:oXl7S6XbZy4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=Ax0YBCZY_C4:oXl7S6XbZy4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=Ax0YBCZY_C4:oXl7S6XbZy4:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=Ax0YBCZY_C4:oXl7S6XbZy4:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=Ax0YBCZY_C4:oXl7S6XbZy4:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=Ax0YBCZY_C4:oXl7S6XbZy4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=Ax0YBCZY_C4:oXl7S6XbZy4:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=Ax0YBCZY_C4:oXl7S6XbZy4:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=Ax0YBCZY_C4:oXl7S6XbZy4:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/stanbarber/cQWZ/~4/Ax0YBCZY_C4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.stanbarber.com/freebsd/creating-self-signed-ssl-certificates-on-freebsd-with-openssl/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.stanbarber.com/freebsd/creating-self-signed-ssl-certificates-on-freebsd-with-openssl</feedburner:origLink></item>
		<item>
		<title>Setting up an IMAP server on FreeBSD using Cyrus</title>
		<link>http://feedproxy.google.com/~r/stanbarber/cQWZ/~3/qI5Q3FO-IMU/setting-up-an-imap-server-on-freebsd-using-cyrus</link>
		<comments>http://www.stanbarber.com/freebsd/setting-up-an-imap-server-on-freebsd-using-cyrus#comments</comments>
		<pubDate>Thu, 04 Mar 2010 05:59:41 +0000</pubDate>
		<dc:creator>Stan Barber</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Cyrus]]></category>
		<category><![CDATA[IMAP]]></category>
		<category><![CDATA[POP]]></category>
		<category><![CDATA[sendmail]]></category>

		<guid isPermaLink="false">http://www.stanbarber.com/?p=110</guid>
		<description><![CDATA[When setting up IMAP servers, I look at two basic approaches. One is to setup IMAP as a service on a machine that will be doing other things (shared web hosting, mailing list service, SMTP relay/routing, interactive shell access via SSH, FTP server, etc.) that might be controlled through a control panel (cPanel, WebMIN/UserMIN/VirtualMIN, etc.). [...]]]></description>
			<content:encoded><![CDATA[<p>When setting up IMAP servers, I look at two basic approaches. One is to setup IMAP as a service on a machine that will be doing other things (shared web hosting, mailing list service, SMTP relay/routing, interactive shell access via SSH, FTP server, etc.) that might be controlled through a control panel (cPanel, WebMIN/UserMIN/VirtualMIN, etc.). The other is to setup a machine that is a dedicated IMAP store. For the first case, I generally use Dovecot. For the second case, I use Cyrus. This posting concerns this second case. I will be also writing about the other case in a future post. By the way, if you need a reminder about the typography used in this post, <a href="/conventions">look here</a>.</p>
<p>When considering the system requirements, a key consideration is on how the IMAP server will be used. Will there be a large number of users? How many messages will need to be handled per hour? What IMAP clients are the users typically going to be using? One of the best discussions on this is in a book now 10 years old called <a href="http://www.amazon.com/gp/product/059600012X?ie=UTF8&amp;tag=wwwstanbarber-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=059600012X">Managing IMAP</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=wwwstanbarber-20&amp;l=as2&amp;o=1&amp;a=059600012X" border="0" alt="" width="1" height="1" /> from Dianna Mullet &amp; Kevin Mullet and published by O&#8217;Reilly. In Chapter 16 where they discuss performance tuning, they advise that Disk I/O is the biggest concern, followed by memory and then by bandwidth. In the last 10 years, there have been significant improvements in all three of these areas, but it is wise to be mindful of these same things when setting up a server. In particular, I would recommend the fastest disks connected the fastest possible way to the computing sub-system of your computer and a reasonably large chunk of memory for the system. For my latest generation IMAP servers (running Cyrus), I use Core Duo CPUs with 2Gb of memory and SATA 7200rpm Seagate Black 1TB drives. Setting up RAID is recommended as well as doing some kind of disk-to-disk backup. This will make it possible to recover quickly should something go awry. Because FreeBSD makes good use of multiple CPUs, parts of Cyrus can run on different CPUs at the same time and improve overall performance for certain tasks. My choices are based on my need to store a large number of messages for a long time, do lots of indexing to make searching easier, do inbound message sorting and filtering (using sieve) on a moderate number of messages per hour (less than a thousand). Those of you who are interested in doing this on Linux may want to read a more recent book called <a href="http://www.amazon.com/gp/product/1593271778?ie=UTF8&amp;tag=wwwstanbarber-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1593271778">The Book of IMAP: Building a Mail Server with Courier and Cyrus</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=wwwstanbarber-20&amp;l=as2&amp;o=1&amp;a=1593271778" border="0" alt="" width="1" height="1" /> where the authors, Peer Heinlein and Peer Hartleben, discuss the relative merits of the Ext3, ReiserFS 3 and ZFS on Linux (chapter 4).  For small servers (20 users or less), they are satisfied with the performance of the standard Ext3 file system.</p>
<p>Since Cyrus maintains a common message store for all users (kinda like <em>/var/mail</em> for traditional Unix Mail), I recommend that this store be put on its own disk partition. I use a full 1TB drive for this. This will limit the growth of the store without using quotas. I also recommend that this store not be on the same partition as the MTA&#8217;s queue. There are a number of other database files that Cyrus uses. By default, these will be placed in the <em>/var/imap</em> directory. I recommend that the <em>/var</em> partition be bigger than you may normally use for these imap server systems. I have allocated 100GB <em>/var</em> on the systems I use. I don&#8217;t personally use OS quotas on these systems. I recommend that if you want to use quotas, you use the Cyrus built-in quota system. I don&#8217;t intend to discuss the details here, but you can read more about setting quotas up in <a href="http://www.amazon.com/gp/product/1593271778?ie=UTF8&amp;tag=wwwstanbarber-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1593271778">The Book of IMAP: Building a Mail Server with Courier and Cyrus</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=wwwstanbarber-20&amp;l=as2&amp;o=1&amp;a=1593271778" border="0" alt="" width="1" height="1" />in Chapter 14.</p>
<p>As with any ports-based installation on FreeBSD (for recent versions of FreeBSD), it&#8217;s best to be sure the latest copy of the ports is on the system. <code><strong>portsnap</strong></code> is the easy way to get this done. As <strong>root</strong>, type <code><strong>portsnap update</strong></code> <code><strong>portsnap</strong></code> has been used to update <em>/usr/ports</em> before. If not, type <code><strong>portsnap fetch</strong></code> followed by <code><strong>portsnap extract</strong></code>.</p>
<p>Once the <em>/usr/ports</em> update is complete, type <code><strong>cd /usr/ports/mail/cyrus-imapd23</strong></code> and type  <code><strong>make</strong></code> to get the installation started. A page full of options is displayed. The defaults are fine, so tab down to <span style="text-decoration: underline;">OK</span> and hit enter to move on. Now, type <code><strong>make all  install</strong></code>.</p>
<p>Cyrus uses SASL to handle authentication, so if  the cyrus-sasl2 package has not been installed previously, it will be installed to meet the prerequisites for cyrus-imapd23. I recommend using the Berkeley DB option and the defaults for the rest. Tab down to <span style="text-decoration: underline;">OK</span> and hit enter to move on. There are some other things that cyrus-sasl2 will install in order to make it possible to build the package, but none of these will require further interaction.</p>
<p>When everything is done, there are still some post-installation tasks to do. Here is a list:</p>
<ul>
<li>Add an entry for the sieve service to <em>/etc/services</em>. Typically, this is recommended to be port 4190 over TCP, but any port is fine as long as it is the same for all the systems that will access this system.</li>
<li>If my recommendation to put the mail store on its own partition was followed, then modify <em>/usr/local/etc/imapd.conf</em> to update the line that starts with <code>partition-default:</code>.  Replace the default (<code>/var/spool/imap</code>) with the full path to the location where the mail store is mounted. On my systems, I use <em>/store</em>, so I have a line that looks like this: <code>partition-default: /store</code>.</li>
<li>To make use of the <em><code>saslauthd</code></em> for authentication, another line in <em>/usr/local/etc/imapd.conf</em> needs to be changed. This line starts with <code>sasl_pwcheck_method:</code>. Replace the default (<code>auxprop</code>) with <code>saslauthd</code>.</li>
<li>Make <strong><em>cyrus</em></strong> the name of the cyrus-imapd administrator by adding <code>admins: cyrus</code> to <em>/usr/local/etc/imapd.conf</em></li>
<li>Set the password for <strong><em>cyrus</em></strong> in the SASL database. Type <code><strong>/usr/local/sbin/saslpasswd2 cyrus</strong></code> and then enter the password for this administrative account.</li>
<li>Prep the mail store by running <code><strong>/usr/local/cyrus/bin/mkimap</strong></code>.</li>
<li>Add <code>cyrus_imapd_enable="YES"</code> to <em>/etc/rc.conf</em> on the server</li>
<li>Setup logging.
<ul>
<li>Type <code><strong>touch /var/log/local6.log</strong></code>.</li>
<li>Add <code>local6.debug   /var/log/local6.log</code> to <em>/etc/syslog.conf</em></li>
<li>Restart <em><code>syslogd</code></em> by typing <code><strong>/etc/rc.d/syslogd restart</strong></code></li>
<li>Add <code>/var/log/local6.log  600   7   *  @T00  JN</code> to <em>/etc/newsyslog.conf</em></li>
</ul>
</li>
<li>Install the <em><code>saslauthd</code></em> daemon and start it.
<ul>
<li> Type <code><strong>cd /usr/ports/security/cyrus-sasl2-saslauthd</strong></code> and then <code><strong>make</strong></code>.</li>
<li>Select the Berkeley DB option and use the rest of the defaults. Tab down to <span style="text-decoration: underline;">OK</span> and hit enter to move on.</li>
<li>Add <code>saslauthd_enable="YES"</code> to <em>/etc/rc.conf</em> on the server.</li>
<li>Add <code>saslauthd_flags="-a sasldb"</code> to <em>/etc/rc.conf</em> on the server.</li>
<li>Start the <code><strong>saslauthd</strong></code> server. Type <code><strong>/usr/local/etc/rc.d/saslauthd start</strong></code>.</li>
</ul>
</li>
<li>Start the cyrus-imapd daemon by typing <code><strong>/usr/local/etc/rc.d/imapd start</strong></code>.</li>
<li>To add a mail user called <strong><em>jdoe</em></strong>, type <code><strong>su -m cyrus</strong></code> to become the system user <strong>cyrus</strong> and then login as the mail administrator <strong><em>cyrus</em></strong> using <code><strong>cyradm</strong></code>.
<ul>
<li>Type <code><strong>cyradm localhost</strong></code> and hit enter.</li>
<li>Type <code><strong>cm user.jdoe</strong></code> and hit enter.</li>
<li> Type <code><strong>quit</strong></code> to exit <code><strong>cyradm</strong></code>.</li>
</ul>
</li>
<li>Set the password for <strong><em>jdoe</em></strong> in the SASL database. Type <code><strong>/usr/local/sbin/saslpasswd2 jdoe</strong></code> and then enter the password for this mail user account.</li>
<li>Validate the installed by typing <code><strong>imtest -a jdoe</strong></code>. Type the password entered in the previous step and hit return. Here is an example of the dialogue:
<pre>testhost# imtest -a jdoe
WARNING: no hostname supplied, assuming localhost
S: * OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID STARTTLS AUTH=NTLM AUTH=LOGIN AUTH=PLAIN AUTH=GSSAPI AUTH=DIGEST-MD5 AUTH=CRAM-MD5 SASL-IR COMPRESS=DEFLATE] testhost.example.com Cyrus IMAP v2.3.16 server ready
C: A01 AUTHENTICATE DIGEST-MD5
S: + bm9uY2U9InliSUF5Nmx3RlVJMFhlSkZraUI3SzloWitCOUFDWGFDVitmbmpTaHYwTkU9IixyZWFsbT0ic2hlbXAuYWNhZGVtLmNvbSIscW9wPSJhdXRoLGF1dGgtaW50LGF1dGgtY29uZiIsY2lwaGVyPSJyYzQtNDAscmM0LTU2LHJjNCxkZXMsM2RlcyIsbWF4YnVmPTQwOTYsY2hhcnNldD11dGYtOCxhbGdvcml0aG09bWQ1LXNlc3M=
Please enter your password:
C: dXNlcm5hbWU9InNiYXJiZXIiLHJlYWxtPSJzaGVtcC5hY2FkZW0uY29tIixub25jZT0ieWJJQXk2bHdGVUkwWGVKRmtpQjdLOWhaK0I5QUNYYUNWK2ZualNodjBORT0iLGNub25jZT0iWWZMMjFad2RrTzdGNDJIY0Y2S2tlZUJ1RFoxNDVhTkFOTHBJU25xTUZrVT0iLG5jPTAwMDAwMDAxLHFvcD1hdXRoLWNvbmYsY2lwaGVyPXJjNCxtYXhidWY9MTAyNCxkaWdlc3QtdXJpPSJpbWFwL2xvY2FsaG9zdCIscmVzcG9uc2U9YmNjMmE5OTdjZTQ5NTA5ZDczZWUyMDNlNWNlMzkzZTE=
S: + cnNwYXV0aD1jM2FmOGMzMDc3OWY4OWFmNzg2MTE1NzhkNDQ3NzQ0Zg==
C:
S: A01 OK Success (privacy protection)
Authenticated.
Security strength factor: 128
C: C01 CAPABILITY
S: * CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID LOGINDISABLED AUTH=NTLM AUTH=LOGIN AUTH=PLAIN AUTH=GSSAPI AUTH=DIGEST-MD5 AUTH=CRAM-MD5 COMPRESS=DEFLATE ACL RIGHTS=kxte QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY SORT SORT=MODSEQ THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE CATENATE CONDSTORE SCAN IDLE URLAUTH
S: C01 OK Completed</pre>
<p>Note: The Digest-MD5 strings sent by the server may be poorly formatted in this example. I would have prefer that they wrap, but I am stilll learning how to get the formatting to look right for that.  If you have a hint or trick that can help me wrap it properly, contact me.</li>
</ul>
<p>To integrate this with <em>sendmail</em> the default local mailer needs deliver to <em>cyrus</em>. This is done by changing the <em>/etc/mail/sendmail.cf</em> file. Here are the steps:</p>
<ul>
<li>Become the <strong>root</strong> user and type <code><strong>cd /etc/mail</strong></code>.</li>
<li>Type <code><strong>make</strong></code> to create the hostname-based <code>mc</code> file.</li>
<li>Add the following three lines to hostname-based <code>mc</code> file.
<pre>define(`confLOCAL_MAILER',`cyrusv2')
define(`CYRUS_MAILER_PATH',`/usr/local/cyrus/bin/deliver')
<code>MAILER(`cyrusv2')</code></pre>
</li>
<li>Now type <code><strong>make stop; make all; make start</strong></code>.</li>
</ul>
<p>The IMAP server is ready to receive SMTP mail for <strong><em>jdoe</em></strong>. Keep in mind that by default <em>cyrus</em> is setup to use an authentication scheme that requires NTLM, DIGEST-MD5, or GSSAPI. The IMAP client needs to be properly configured to use one of these authentication schemes. I use DIGEST-MD5.</p>
<h3><a name="TLSSSL">What about using TLS/SSL?</a></h3>
<p>It&#8217;s pretty easy to setup TLS/SSL on <i>cyrus</i>. </p>
<ul>
<li>First, a properly signed certificate must be available that matches the hostname of the server on which <I>cyrus</i> is running. I have written a <a href="/freebsd/creating-self-signed-ssl-certificates-on-freebsd-with-openssl">posting</a> on setting up a self-signed certificate.</li>
<li>Next, the <i>/usr/local/etc/imapd.conf</i> configuration file must be modified to define the following items:
<ul>
<li><code>tls_cert_file:</code> must have the full path to the file containing the server certificate.</li>
<li><code>tls_key_file:</code> must have the full path to the file containing the server certificate key. Note that the <b>cyrus</b> user must be able to read the key file.</li>
</ul>
</li>
<li>If you are using a certificate authority signed server certificate, <code>tls_ca_file:</code> must have the full path to the file containing the certificate authority certificate used to sign that server certificate.</li>
</ul>

<p><a href="http://feedads.g.doubleclick.net/~a/Hk6ffHwchzHfO6zkcwKLROwFAzc/0/da"><img src="http://feedads.g.doubleclick.net/~a/Hk6ffHwchzHfO6zkcwKLROwFAzc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Hk6ffHwchzHfO6zkcwKLROwFAzc/1/da"><img src="http://feedads.g.doubleclick.net/~a/Hk6ffHwchzHfO6zkcwKLROwFAzc/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=qI5Q3FO-IMU:iWEOWRAM-mM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=qI5Q3FO-IMU:iWEOWRAM-mM:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=qI5Q3FO-IMU:iWEOWRAM-mM:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=qI5Q3FO-IMU:iWEOWRAM-mM:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=qI5Q3FO-IMU:iWEOWRAM-mM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=qI5Q3FO-IMU:iWEOWRAM-mM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=qI5Q3FO-IMU:iWEOWRAM-mM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=qI5Q3FO-IMU:iWEOWRAM-mM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=qI5Q3FO-IMU:iWEOWRAM-mM:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=qI5Q3FO-IMU:iWEOWRAM-mM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=qI5Q3FO-IMU:iWEOWRAM-mM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=qI5Q3FO-IMU:iWEOWRAM-mM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=qI5Q3FO-IMU:iWEOWRAM-mM:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=qI5Q3FO-IMU:iWEOWRAM-mM:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=qI5Q3FO-IMU:iWEOWRAM-mM:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=qI5Q3FO-IMU:iWEOWRAM-mM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=qI5Q3FO-IMU:iWEOWRAM-mM:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=qI5Q3FO-IMU:iWEOWRAM-mM:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=qI5Q3FO-IMU:iWEOWRAM-mM:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/stanbarber/cQWZ/~4/qI5Q3FO-IMU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.stanbarber.com/freebsd/setting-up-an-imap-server-on-freebsd-using-cyrus/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.stanbarber.com/freebsd/setting-up-an-imap-server-on-freebsd-using-cyrus</feedburner:origLink></item>
		<item>
		<title>Welcome to My Blog</title>
		<link>http://feedproxy.google.com/~r/stanbarber/cQWZ/~3/hlntt8fPqiA/welcome-to-my-blog</link>
		<comments>http://www.stanbarber.com/general/welcome-to-my-blog#comments</comments>
		<pubDate>Tue, 23 Feb 2010 07:59:59 +0000</pubDate>
		<dc:creator>Stan Barber</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[First Blog Entry]]></category>
		<category><![CDATA[how-to's]]></category>

		<guid isPermaLink="false">http://www.stanbarber.com/?p=94</guid>
		<description><![CDATA[Since this is the first entry, I thought I would set the stage for what I expect to do here. It will be a great way to help me stay on target with this as I think about what I want to share. That&#8217;s not to say I won&#8217;t allow myself to wander off target [...]]]></description>
			<content:encoded><![CDATA[<p>Since this is the first entry, I thought I would set the stage for what I expect to do here. It will be a great way to help me stay on target with this as I think about what I want to share. That&#8217;s not to say I won&#8217;t allow myself to wander off target from time to time, but those occasions should be pretty rare and exceptional ones. I expect this to be technically focused. Lots of discussions of how I do things or how I would like to do things (when I am looking for a solution and can&#8217;t seem to put my finger on it). Hopefully, when I am looking for advice or assistance, there will be someone out in cyberspace that can help. That&#8217;s one of the real strengths of the Internet and I want to foster that by both sharing what I know and learning how others solve the same problems at which I am looking. One thing I have learned after 30 years working with the Internet and its related technologies is that there are very few things that only have one solution.</p>
<p>Generally, I won&#8217;t be commenting on the news of the day or reviewing hardware or software here. There are plenty of others who spend time doing that and many do a credible job. I may reference those I believe have done those types of things in a way that resonate with me (and I may do it myself on those rare and exceptional cases I mentioned in the first paragraph of this post), but I don&#8217;t expect that to be a regular theme here. I want to cover things that I hope will be of interest to people looking for technical solutions to specific technical problems that I have worked on from time to time (or are working on at the time I write a particular posting). As such, the posts may vary pretty widely within that area as I like to learn all the time. One day, I may talk about how I configure the Apache web server to do something. Another day, I may write about building routing policy sections in  JunOS. I expect I will write about home theater as I like to dabble in that from time to time. Right now, I am not sure what the boundaries will be exactly, so bear with me as I work through this during the start up of this effort.</p>
<p>Every blog post will be open for comments and I will be reading every one one of them, but I will moderate the posts and publish those I consider to be on-point to the original and interesting to read. Spam comments will be treated as such. Feedback via the <a href="/contact-me">contact page</a> is also welcome, but please include the title of the posting you are commenting on. Using the contact page won&#8217;t make it back to the comments page on the posting, but it could generate some private exchanges with me and may generate some follow-up posting here. I also suggest using the contact page if you have suggestions for postings.</p>
<p>Again, as I wrote on my home page, I appreciate you visiting and spending time reading what I post here. I hope you find it is time well spent.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/FYUAQFjzdZk1PZ_EgA_rfWnJZI0/0/da"><img src="http://feedads.g.doubleclick.net/~a/FYUAQFjzdZk1PZ_EgA_rfWnJZI0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/FYUAQFjzdZk1PZ_EgA_rfWnJZI0/1/da"><img src="http://feedads.g.doubleclick.net/~a/FYUAQFjzdZk1PZ_EgA_rfWnJZI0/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=hlntt8fPqiA:HdRXaYu-Rhs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=hlntt8fPqiA:HdRXaYu-Rhs:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=hlntt8fPqiA:HdRXaYu-Rhs:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=hlntt8fPqiA:HdRXaYu-Rhs:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=hlntt8fPqiA:HdRXaYu-Rhs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=hlntt8fPqiA:HdRXaYu-Rhs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=hlntt8fPqiA:HdRXaYu-Rhs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=hlntt8fPqiA:HdRXaYu-Rhs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=hlntt8fPqiA:HdRXaYu-Rhs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=hlntt8fPqiA:HdRXaYu-Rhs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=hlntt8fPqiA:HdRXaYu-Rhs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=hlntt8fPqiA:HdRXaYu-Rhs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=hlntt8fPqiA:HdRXaYu-Rhs:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=hlntt8fPqiA:HdRXaYu-Rhs:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=hlntt8fPqiA:HdRXaYu-Rhs:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=hlntt8fPqiA:HdRXaYu-Rhs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?i=hlntt8fPqiA:HdRXaYu-Rhs:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=hlntt8fPqiA:HdRXaYu-Rhs:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?a=hlntt8fPqiA:HdRXaYu-Rhs:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/stanbarber/cQWZ?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/stanbarber/cQWZ/~4/hlntt8fPqiA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.stanbarber.com/general/welcome-to-my-blog/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.stanbarber.com/general/welcome-to-my-blog</feedburner:origLink></item>
	</channel>
</rss>
