<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>epicblog &#187; WILT</title> <atom:link href="http://www.rickwargo.com/category/wilt/feed/" rel="self" type="application/rss+xml" /><link>http://www.rickwargo.com</link> <description>Acquiring information, one day at a time.</description> <lastBuildDate>Fri, 14 Oct 2011 01:23:12 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>Network Connection fails after Windows Update for 64-bit Windows 7 running in Hyper-V 2008 R2</title><link>http://www.rickwargo.com/2011/10/13/network-connection-fails-after-windows-update-for-windows-7/</link> <comments>http://www.rickwargo.com/2011/10/13/network-connection-fails-after-windows-update-for-windows-7/#comments</comments> <pubDate>Fri, 14 Oct 2011 01:23:12 +0000</pubDate> <dc:creator>Rick Wargo</dc:creator> <category><![CDATA[Networking]]></category> <category><![CDATA[WILT]]></category> <guid
isPermaLink="false">http://www.rickwargo.com/?p=628</guid> <description><![CDATA[I have a number of virtual machines running on a very stable Hyper-V 2008 R2 machine. Yesterday&#8217;s reboot of my instances to accomodate Windows Update left only my 64-bit Windows 7 instance without a network connection. No amount of fiddling within the instance could restore it. After much frustration I finally removed the Network Adapter [...]]]></description> <content:encoded><![CDATA[<p>I have a number of virtual machines running on a very stable Hyper-V 2008 R2 machine. Yesterday&#8217;s reboot of my instances to accomodate Windows Update left only my 64-bit Windows 7 instance without a network connection. No amount of fiddling within the instance could restore it. After much frustration I finally removed the Network Adapter from the shut down instance in the Hyper-V Manager and added a new network interface. Upon booting the instance, it installed new drivers and successfully connected to the network.</p> ]]></content:encoded> <wfw:commentRss>http://www.rickwargo.com/2011/10/13/network-connection-fails-after-windows-update-for-windows-7/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Being Open To New Ideas</title><link>http://www.rickwargo.com/2011/02/12/being-open-to-new-ideas/</link> <comments>http://www.rickwargo.com/2011/02/12/being-open-to-new-ideas/#comments</comments> <pubDate>Sat, 12 Feb 2011 19:12:07 +0000</pubDate> <dc:creator>Rick Wargo</dc:creator> <category><![CDATA[Musings]]></category> <category><![CDATA[WILT]]></category> <guid
isPermaLink="false">http://www.rickwargo.com/?p=525</guid> <description><![CDATA[Although not an avid Angry Birds player, my 3yo son is and has told me that the red bird does indeed do something when the screen is tapped. In fact, when he told me what happens, I had a difficult time believing it, even when trying it multiple times myself. But now, it is crystal [...]]]></description> <content:encoded><![CDATA[<p>Although not an avid Angry Birds player, my 3yo son is and has told me that the red bird does indeed do something when the screen is tapped. In fact, when he told me what happens, I had a difficult time believing it, even when trying it multiple times myself. But now, it is crystal clear to me.</p><p>Turns out my son has found something about Angry Birds that I have not seen anyone else find. Most (if not all) people think when you tap the screen while the red bird is airborne, nothing will happen. That is not entirely correct. The red bird makes a sound similar to &#8220;<a
href="../?attachment_id=524">peee-kaaaaa</a>!&#8221;</p><p>The moral is the obvious one &#8211; don&#8217;t dismiss an idea because of the messenger or because you think you may know better.</p> ]]></content:encoded> <wfw:commentRss>http://www.rickwargo.com/2011/02/12/being-open-to-new-ideas/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>OpenVPN Stops Working on DD-WRT v24 preSP2 (Build13064)</title><link>http://www.rickwargo.com/2011/01/10/openvpn-stops-working-on-dd-wrt-v24-presp2-build13064/</link> <comments>http://www.rickwargo.com/2011/01/10/openvpn-stops-working-on-dd-wrt-v24-presp2-build13064/#comments</comments> <pubDate>Mon, 10 Jan 2011 23:51:03 +0000</pubDate> <dc:creator>Rick Wargo</dc:creator> <category><![CDATA[Networking]]></category> <category><![CDATA[WILT]]></category> <guid
isPermaLink="false">http://www.rickwargo.com/?p=522</guid> <description><![CDATA[After struggling for quite some time to discover why the once-working OpenVPN setup on my DD-WRT router suddenly stopped working, I finally realized the configuration was corrupted. I had been issuing a number of iptables commands (inserts and deletes) at the command prompt via ssh prior to the failure, although I do not know if [...]]]></description> <content:encoded><![CDATA[<p>After struggling for quite some time to discover why the once-working OpenVPN setup on my DD-WRT router suddenly stopped working, I finally realized the configuration was corrupted. I had been issuing a number of iptables commands (inserts and deletes) at the command prompt via ssh prior to the failure, although I do not know if the two are connected.</p><p>After disabling the OpenVPN client and rebooting the router, I noticed the Public Client Cert was partially truncated. I pasted the certificates back in, applied changes and rebooted the router and it works again once more.</p> ]]></content:encoded> <wfw:commentRss>http://www.rickwargo.com/2011/01/10/openvpn-stops-working-on-dd-wrt-v24-presp2-build13064/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Port Forwarding / Port Mapping on Windows Server 2008 R2</title><link>http://www.rickwargo.com/2011/01/08/port-forwarding-port-mapping-on-windows-server-2008-r2/</link> <comments>http://www.rickwargo.com/2011/01/08/port-forwarding-port-mapping-on-windows-server-2008-r2/#comments</comments> <pubDate>Sun, 09 Jan 2011 01:32:51 +0000</pubDate> <dc:creator>Rick Wargo</dc:creator> <category><![CDATA[WILT]]></category> <guid
isPermaLink="false">http://www.rickwargo.com/?p=519</guid> <description><![CDATA[As a long time friend of linux&#8217;s itables command, I mistakenly assumed that trying to port forward on Windows Server 2008 R2 would be just as easy. After quite a long while of searching I was able to determine the correct command; through use of netsh on the command line, it is easy to map [...]]]></description> <content:encoded><![CDATA[<p>As a long time friend of linux&#8217;s itables command, I mistakenly assumed that trying to port forward on Windows Server 2008 R2 would be just as easy. After quite a long while of searching I was able to <a
title="Netsh commands for interface proxyforward" href="http://technet.microsoft.com/en-us/library/cc776297%28WS.10%29.aspx#BKMK_1" target="_blank">determine the correct command</a>; through use of netsh on the command line, it is easy to map incoming TCP traffic from one port to another port.</p><p/> In my scenario, I needed to have an SSL connection initiated on a port other than 443 on the same machine, but handled by a service listening on port 443. To do this, the following command is entered on the command line; in this example, port 12345 is used as the initiating port.</p><p/> <code>C:\Users\Administrator> netsh interface portproxy add v4tov4 listenport=12345 listenaddress=192.168.1.1 connectport=443 connectaddress=192.168.1.1</code></p><p/> Port 12345 is mapped to port 443 on the same machine. To have the traffic transferred to another machine, change the ip address for the connect address to the desired ip address.</p> ]]></content:encoded> <wfw:commentRss>http://www.rickwargo.com/2011/01/08/port-forwarding-port-mapping-on-windows-server-2008-r2/feed/</wfw:commentRss> <slash:comments>13</slash:comments> </item> <item><title>Parallels 6 Prompts To Be Activated With Every Start</title><link>http://www.rickwargo.com/2010/12/26/parallels-6-prompts-to-be-activated-with-every-start/</link> <comments>http://www.rickwargo.com/2010/12/26/parallels-6-prompts-to-be-activated-with-every-start/#comments</comments> <pubDate>Mon, 27 Dec 2010 01:20:26 +0000</pubDate> <dc:creator>Rick Wargo</dc:creator> <category><![CDATA[OS X]]></category> <category><![CDATA[WILT]]></category> <guid
isPermaLink="false">http://www.rickwargo.com/?p=510</guid> <description><![CDATA[UPDATE: It appears Parallels changes the group to accessibility and this procedure does NOT work. Parallels 6 had been running great for quite a while but at some point, restarting Parallels would prompt me to re-enter the activation key; the key in the dialog was from the previous version. For whatever reason, it would not [...]]]></description> <content:encoded><![CDATA[<p>UPDATE: It appears Parallels changes the group to accessibility and this procedure does NOT work.</p><p>Parallels 6 had been running great for quite a while but at some point, restarting Parallels would prompt me to re-enter the activation key; the key in the dialog was from the previous version. For whatever reason, it would not stick.</p><p>I realized today that the group permissions on the preferences files for Parallels was different than the others; the files had a group of &#8220;accessibility.&#8221; <span
style="text-decoration: line-through;">To fix it, I changed the group back to what was on most of the other files</span>; your group name most likely will be different.</p><p><code>$ cd /Users/rick/Library/Preferences<br
/> $ ls -l com.parallels.*<br
/> -rw-------  1 rick  accessibility  21059 Dec 26 19:59 com.parallels.Parallels Desktop Statistics.plist<br
/> -rw-------  1 rick  accessibility  23972 Dec 26 19:59 com.parallels.Parallels Desktop.plist<br
/> -rw-------  1 rick  accessibility   5430 Dec 26 19:59 com.parallels.Parallels.plist<br
/> -rw-------  1 rick  accessibility   1642 Dec  7 16:36 com.parallels.desktop.console.plist<br
/> -rw-------  1 rick  rick             905 Feb 11  2009 com.parallels.desktop.plist<br
/> -rw-------  1 rick  rick             505 Feb 11  2009 com.parallels.imagetool.plist<br
/> $ chgrp rick com.parallels.*</code></p> ]]></content:encoded> <wfw:commentRss>http://www.rickwargo.com/2010/12/26/parallels-6-prompts-to-be-activated-with-every-start/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Installing MySQL 5.5 on OS X 10.6 (Snow Leopard) and Rails 3</title><link>http://www.rickwargo.com/2010/12/16/installing-mysql-5-5-on-os-x-10-6-snow-leopard-and-rails-3/</link> <comments>http://www.rickwargo.com/2010/12/16/installing-mysql-5-5-on-os-x-10-6-snow-leopard-and-rails-3/#comments</comments> <pubDate>Thu, 16 Dec 2010 21:47:05 +0000</pubDate> <dc:creator>Rick Wargo</dc:creator> <category><![CDATA[OS X]]></category> <category><![CDATA[WILT]]></category> <guid
isPermaLink="false">http://www.rickwargo.com/?p=503</guid> <description><![CDATA[I was successfully able to install MySQL 5.5 on OS X 10.6 according to the following steps. Download MySQL Community Server 5.5.8 for Mac OS X. I chose to download Mac OS X ver. 10.6 (x86, 64-bit), DMG Archive. The DMG archive is nice as it has a startup package that installs a MySQL control [...]]]></description> <content:encoded><![CDATA[<p>I was successfully able to install MySQL 5.5 on OS X 10.6 according to the following steps.</p><p><a
href="http://dev.mysql.com/downloads/mysql/#downloads" target="_blank">Download MySQL Community Server 5.5.8</a> for Mac OS X. I chose to download <a
href="http://dev.mysql.com/downloads/mirror.php?id=399420" target="_blank">Mac OS X ver. 10.6 (x86, 64-bit), DMG Archive</a>. The DMG archive is nice as it has a startup package that installs a MySQL control panel (although it dosn&#8217;t work from the start without tweaking).</p><p>Open the DMG archive and execute the mysql-5.5.8-osx10.6-x86_64.pkg. I had no issues with installation although the ReadMe.txt file suggests that problems may occur.</p><p>After successful installation, execute the MySQLStartupItem.pkg. This will install the MySQL Startup startup items. This should complete successfully.</p><p>Next, install the MySQL preferences pane by double-clicking the MySQL.prefPane item in the mounted drive. This will install the MySQL preferences item, although MySQL cannot yet be started through it. First, the mysql.server file must be edited by hand to specify the location of the base directory.</p><p>At a terminal, cd to <strong>/usr/local/mysql/support-files</strong> and edit <strong>mysql.server</strong> (with root privileges, using sudo). Around line 46 locate the lines that read:</p><p><code>basedir=<br
/> datadir=</code></p><p>and change them to read</p><p><code>basedir=/usr/local/mysql<br
/> datadir=/usr/local/mysql/data</code></p><p>Save the file. MySQL can now be started from the preferences pane. Without it, you will see a message in the Console that reads:</p><p><code>mysql.server: line 256: my_print_defaults: command not found</code></p><p>To enable rails 3 to use mysql, install the <strong>mysql2</strong> gem. Next, you&#8217;ll need to set the <strong>DYLD_LIBRARY_PATH</strong> to include the MySQL library directory. To do this, edit your ~/.bash_profile and include the following:</p><p><code>export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH</code></p><p>The rails server will now successfully start. Without the inclusion of the directory in the DYLD_LIBRARY_PATH, a message about not finding the library would appear and the server would abort.</p><p>The error message, from the mysql2 gem, states (in part):</p><p><code>Library not loaded: libmysqlclient.16.dylib (LoadError)</code></p><p>Upon reboot, MySQL will fail to start with a dialog stating:</p><p><code>Insecure Startup Item disabled.<br
/> “/Library/StartupItems/MySQLCOM” has not been started because it does not have the proper security settings.</code></p><p>The group permissions need to be changed to wheel on the MySQL directory by executing the following command in the terminal:</p><p><code>sudo chown -R root:wheel /Library/StartupItems/MySQLCOM</code></p><p>This will prevents the startup error dialog. Finally, ensure the <em>Automatically Start MySQL Server on Startup</em> is checked in the MySQL preferences window.</p><p>Good luck!</p> ]]></content:encoded> <wfw:commentRss>http://www.rickwargo.com/2010/12/16/installing-mysql-5-5-on-os-x-10-6-snow-leopard-and-rails-3/feed/</wfw:commentRss> <slash:comments>20</slash:comments> </item> <item><title>Gaming the New Facebook Profile Photo Stream</title><link>http://www.rickwargo.com/2010/12/10/gaming-the-new-facebook-profile-photo-stream/</link> <comments>http://www.rickwargo.com/2010/12/10/gaming-the-new-facebook-profile-photo-stream/#comments</comments> <pubDate>Sat, 11 Dec 2010 03:21:25 +0000</pubDate> <dc:creator>Rick Wargo</dc:creator> <category><![CDATA[WILT]]></category> <guid
isPermaLink="false">http://www.rickwargo.com/?p=501</guid> <description><![CDATA[Soon after the five picture photo stream appeared as part of the new Facebook profile, people noticed you could customize it to give it a predefined appearance. It&#8217;s not very difficult to do and takes just a little bit of patience. The trick is to create five (approximately) 3&#215;2 images (a minimum of 97&#215;68 pixels), [...]]]></description> <content:encoded><![CDATA[<p>Soon after the five picture photo stream appeared as part of the new Facebook profile, people noticed you could customize it to give it a predefined appearance. It&#8217;s not very difficult to do and takes just a little bit of patience.</p><p>The trick is to create five (approximately) 3&#215;2 images (a minimum of 97&#215;68 pixels), upload them to your photos, and <strong>tag yourself in them in reverse order</strong>. The five images can also be made from a single image of 485&#215;68 pixels split width-wise into five equal images of 97&#215;68 pixels. To get them to appear, conveniently remove the photos in the stream by hovering over each (unwanted) one and clicking on the [x] button in the top right of the picture until the five you have chosen appear. Be careful not to delete all of them or make a mistake as it may delay the ability to upload and retag the photos to get into the stream. I had deleted all of the photos in the stream and then uploaded photos and could tag myself in them (but only once). When I realized I had tagged me in the photos in the wrong order and removed the tags again, I had to wait about two days before I could restart the process.</p><p>Send a message, or be creative. Create a mural or a five-pane image set from a panorama. Just remember it is quite easy to have it disrupted when someone tags you in a photo, shifting the others to the right. Ensure you have your email notifications set when you are tagged in a photo to keep the stream in tact.</p><p>Have fun!</p> ]]></content:encoded> <wfw:commentRss>http://www.rickwargo.com/2010/12/10/gaming-the-new-facebook-profile-photo-stream/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Installing TweetDeck on 64-bit Fedora 13 with Adobe AIR 2</title><link>http://www.rickwargo.com/2010/12/07/installing-tweetdeck-on-64-bit-fedora-13-with-adobe-air-2/</link> <comments>http://www.rickwargo.com/2010/12/07/installing-tweetdeck-on-64-bit-fedora-13-with-adobe-air-2/#comments</comments> <pubDate>Tue, 07 Dec 2010 13:58:43 +0000</pubDate> <dc:creator>Rick Wargo</dc:creator> <category><![CDATA[WILT]]></category> <guid
isPermaLink="false">http://www.rickwargo.com/?p=494</guid> <description><![CDATA[TweetDeck runs on top of Adobe AIR, but unfortunately, Adobe AIR is currently only released for 32-bit Fedora platforms. Fortunately, it is possible to install the 32-bit version of AIR if the required 32-bit libraries and packages are installed. I have gathered information from an Adobe KnowledgeBase article and updated it to work for Fedora [...]]]></description> <content:encoded><![CDATA[<p>TweetDeck runs on top of Adobe AIR, but unfortunately, Adobe AIR is currently only released for 32-bit Fedora platforms. Fortunately, it is possible to install the 32-bit version of AIR if the required 32-bit libraries and packages are installed.</p><p>I have gathered information from an <a
title="Installing AIR 2 on 64-bit Fedora Core 11" href="http://kb2.adobe.com/cps/521/cpsid_52132.html#main_ins_air2_64bit_fedora_core_11" target="_blank">Adobe KnowledgeBase article</a> and updated it to work for Fedora 13.</p><h4>Step 1</h4><p>Install the following 32-bit libraries using yum. Note this will most likely install a number of dependencies.<br
/> <code>$ sudo yum install ld-linux.so.2 gtk2-devel.i686 libdbus-glib-1.so.2 libdbus-glib-1.so.2 libhal.so.1<br
/> $ sudo yum install rpm-devel.i686 libXt.so.6 gnome-keyring-devel.i686 libDCOP.so.4</code></p><h4>Step 2</h4><p>According to Adobe, a conflict occurs with <em>libnss</em> and <em>libxml2</em> as the 64-bit versions are installed by default; to resolve, install the 32-bit developer libraries.<br
/> <code>$ sudo yum install libxml2-devel.i586 nss-devel.i586</code></p><h4>Step 3</h4><p>Additionally, install the 32-bit <em>libxslt</em>. In their instructions, it was requested to install version 1.1.26, which is the current version as of this article.<br
/> <code>$ sudo yum install libxslt.i686</code></p><h4>Step 4</h4><p>Install Adobe AIR 2 using yum.<br
/> <code>$ sudo yum install adobeair</code></p><h4>Step 5</h4><p>Restart your browser, if it is running. Install TweetDeck from the <a
title="Install TweetDesk Desktop" href="http://www.tweetdeck.com/desktop/" target="_blank">desktop installation page</a>. I had to press Shift and hit Refresh to get it to work. Press the Download now button. If it works, an Application Install dialog should open with the option to Open. Click the Open button and let it install. It automatically starts TweetDeck but TweetDeck does not seem to work. I had success by closing the window and starting TweetDeck again.</p> ]]></content:encoded> <wfw:commentRss>http://www.rickwargo.com/2010/12/07/installing-tweetdeck-on-64-bit-fedora-13-with-adobe-air-2/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Configuring DKIM and Sendmail on Fedora 13</title><link>http://www.rickwargo.com/2010/11/19/configuring-dkim-and-sendmail-on-fedora-13/</link> <comments>http://www.rickwargo.com/2010/11/19/configuring-dkim-and-sendmail-on-fedora-13/#comments</comments> <pubDate>Fri, 19 Nov 2010 18:55:51 +0000</pubDate> <dc:creator>Rick Wargo</dc:creator> <category><![CDATA[E-mail]]></category> <category><![CDATA[Security]]></category> <category><![CDATA[WILT]]></category> <guid
isPermaLink="false">http://www.rickwargo.com/?p=492</guid> <description><![CDATA[With all the movement with DomainKeys and the updated DomainKeys Identified Mail (better known as DKIM), much has changed in the &#8220;standards&#8221; and it is difficult gathering the correct steps to do when integrating with sendmail on Fedora. Following these simple steps, you should be able to get it configured and running with little headache. [...]]]></description> <content:encoded><![CDATA[<p>With all the movement with DomainKeys and the updated DomainKeys Identified Mail (better known as <a
href="http://www.dkim.org" target="_blank">DKIM</a>), much has changed in the &#8220;standards&#8221; and it is difficult gathering the correct steps to do when integrating with sendmail on Fedora.</p><p>Following these simple steps, you should be able to get it configured and running with little headache. Note there are a lot of moving pieces and a misstep on one will cause failure. Check and re-check each step before moving on.</p><ol><li>Install the DKIM package using yum</li><li>Generate the public and private keys</li><li>Create the DNS records<ol><li>Public DomainKey Selector</li><li>Author Domain Signing Practices</li></ol></li><li>Modify the configuration files<ol><li>Private keys</li><li>Milter configuration</li><li>KeyList</li><li>Internal hosts</li></ol></li><li>Start the dkim-milter service</li><li>Integrate with sendmail</li><li>Test</li><li>Caveats</li></ol><h2><span
id="more-492"></span>Install DKIM using yum</h2><p>From the command line, issue the following command to install the DKIM sendmail milter on your system. I am assuming sendmail is correctly configured and running at this point.</p><p><code>$ sudo yum install dkim-milter</code></p><p>This package provides the dkim-filter sendmail plugin, and a default configuration. It also creates a dkim-milter user and group. As of this post, the current 64-bit, Fedora 13 version is dkim-milter-2.8.3-5.fc13.x86_64.</p><h2>Generate the public and private keys</h2><p>DKIM needs a key pair to sign the message headers to guarantee the specified headers have not been altered. By making the public key available in a DNS TXT record in the sender&#8217;s domain, and assuming the account that manages the DNS records has not been compromised, this can verify the message has actually come from the stated domain (or the message&#8217;s origin).</p><p>The dkim-milter package comes with a utility to generate the key pair for you, dkim-genkey (located in /usr/sbin). This makes it exceedingly simple &#8211; just pass the domain name and selector on the command line and it will generate a 1024 bit (by default) private and public key pair.</p><p>Naming of the selector is not without significance, especially during the testing phase. The selector designates the DNS TXT record to retrieve; it will be in the form &lt;selector&gt;._domainkey. If changes are made to that entry, you may have to wait about an hour for the DNS system to flush. By generating a new selector name, you can bypass this, without having to wait for the time to live (TTL) period to expire.</p><p>The private key needs to be located such that it can be specified correctly in the milter configuration file, specifically the KeyList item; more on this later. To accommodate multiple domains, even if you have no plans on doing so now, I strongly suggest the following naming convention. Under a directory called keys within your dkim-milter folder, create a directory based on your domain name, for this example, it would be example.com. If you choose to keep the dkim-milter directory under your sendmail directory (/etc/mail), the newly created path is as follows:</p><p><code>/etc/mail/dkim-milter/keys/example.com/</code></p><p>Prior to generating the key pair, create the directory and cd into it to save the output from the dkim-genkey command.</p><p>There seem to be a number of different camps on how the selector should be named; in this example, I chose a date-based selector name: nov2010. Assuming the domain of example.com (you will need to substitute your own domain name), issue the following command to generate the key pair:</p><p><code>$ dkim-genkey -s nov2010 -d example.com</code></p><p>This will create two files in the current directory, one for the private key and one for the public. The private key will be named in the format &lt;selector&gt;.private, so in this example, it will be called nov2010.private. The public key will be named &lt;selector&gt;.txt, and in this example it will be called nov2010.txt. The public key file has the benefit of being formatted for your zone file (if running bind or other DNS server); otherwise, you can just add it using your DNS manager software on your ISP.</p><h3>The generated public key</h3><p>The public key file generated from the dkim-genkey command will contain something similar to the following, with the selector you have chosen replacing nov2010 and a new public key value replacing the one following the p= key.</p><p><code>nov2010._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD0g8Ac4gbYhHA3cuSL4kLcgDTE1iyTmugK1mzvhckCP959pavuuSZ5TyA7wLYhv9VTx9QXVwj0WxYqNyRYEGOKXb+gDy16OIdRYy2h4bw5F9Y+rUpvayPSlUmJsrkEm3wuMFoybUGCOQesSeKGPSaxdc+6ENpM6YRvwc+pCh4FjQIDAQAB" ; ----- DKIM nov2010 for example.com</code></p><h3>The generated private key</h3><p>This file needs no modification. It will appear as a block of text between two comments lines, similar to the following:</p><p><code>-----BEGIN RSA PRIVATE KEY-----<br
/> uvap959CPkchvzm1gKumyTi1TEgDckL4SLuc3HAhbYg4c8Ag0QDgKBAAIBwCXIIM<br
/> vprU+9Y5Fwb4h2yRYdOI61ygD+bKXGOYEyRqNxY0WjwXV9QxVT9vhLYw7yA5TSZu<br
/> ABAQIDjQ4FhpC+cwvYR6pMEN6+cdxaPSKGesSeOQGCbUyoMFuw3mkErsmJlUPSya<br
/> ao4Z40oOODFIpuWzNnceu7KjUjmnSyI41VFXKoCraBIezgS8C5m2MpH5KNSBAoGA<br
/> 934kMTe9lvYmoopK3+gDuqhR49/i9/p+JZwSV2vaQ8znYsXoqv/aRW94Vmy2Qmld<br
/> e6UlnElbe0A/EAkBAg/EA8UlANGz3LL+iAmm3DVaCRJxULCGRlvXY3FsjkK10Roa<br
/> GEyvqfjhZf0zzynr9qxb5RlZnZfznO7qoey+/tym3Ft78lim7tPPBPG61f/r3tbX<br
/> wWjDTMpn1QRdi7XHQSJpVQIBrrxNsomNcoMlwfGQnjDGr6Hj7PUBAQJw4FHcNklk<br
/> BBgTmV24Vg4YNn8F5J7Q43b7nQDCQ08kjOBrrnlIRUoem84rasnbVi7gsY9+iPTD<br
/> EAkBA3o8PR8+Yq9IkMz+jeMgNlecDcMG4HD7vKxnj+tubUWVh+7WBfQMxa+NpNwt<br
/> 6OMaxm+Z23zHlbDi0T3hbE5CITvymj5YcI780F44ZtOhdovd0mZXNklFwgs8mTOy<br
/> LNabV8fk/nTnHP5WscBaBfXV1ADn9Wdvs6YbH3AOJB+QdgVSq+DKpBTB87U6KTyH<br
/> =4kz3ri/shYab326OcDPLuwLqtGMSyy0gAP+bTz2h3aLXbUZ=<br
/> -----END RSA PRIVATE KEY-----</code></p><p>Note this key is not a pair for the public key so do not use it; it has been mangled and is for demonstration purpose only.</p><h2>Create the DNS records</h2><p>Having successfully created a private/public key pair, the next step is to publish the public key, and optionally the Author Domain Signing Practice, to your DNS server. This will result in the addition of one or two TXT records to your DNS server.</p><h3>Public DomainKey Selector</h3><p>If you run your own DNS server, just add the public key file generated from the dkim-genkey command to your zone file. In this example, that would be the information from the nov2010.txt file. If you are updating DNS through your ISP, create a new TXT record and assign the Host value &lt;selector&gt;._domainkey, so in this example, it would be nov2010._domainkey. The value for the TXT record will be what is enclosed in quotes within the public key file, again in this example, nov2010.txt. The value will start with v=DKIM1 and end in the public key. This collection of key/value pairs compromises the DomainKey. The keys for v= and g= are optional; and either do not exist in the original DomainKey specification or are different. The values specified in the file are the default and will be assumed if omitted. You can choose to omit them when entering them in the DNS system; it may help make it compatible with DomainKey MTAs, although I have not tested this.</p><h3>Author Domain Signing Practices</h3><p>This is an optional DNS TXT record that describes the policy if emails are signed using DKIM. Not creating this record assumes a default of dkim=unknown, which signifies that the domain may sign some, none, most, or all email. During the testing phase, I would suggest not creating this record, or at least using the default of <em>unknown</em>. Once the server is verified to work correctly, updating this record to state <em>all</em> or <em>discardable</em>.</p><p>The host for this record is _adsp._domainkey and the value is &#8220;dkim=unknown&#8221;. Again, <em>all</em> and <em>discardable</em> may replace <em>unknown</em> once the system is completely functional. The zone record is as follows:</p><p><code>_adsp._domainkey IN TXT "dkim=unknown"</code></p><h2>Modify the configuration files</h2><p>Once the public keys are in place and the DNS TXT records configured correctly, the configuration files need updating. The private keys need to be stored safely and the milter configuration needs to be tweaked.</p><h3>Private keys</h3><p>Assuming you created the domain directory under /etc/mail/dkim-milter/keys, the private key file will exist but will have the extension .private. The file can be renamed to remove the .private extension such that it matches the name of the selector. This is important as the keyfile item in the milter configuration is fashioned to find the private key using the selector name as the last item in the path. If the file does not exist, it will search for the file with a .pem extension and if that doesn&#8217;t exist, will look for it with a .private extension. I prefer no extension so that it matches the selector and the keyfile record matches the full path.</p><p>This private key must be kept secure and access only given to the user needing it &#8211; dkim-milter (remember it was created as part of the yum package installation). It is important to change the owner (and optionally the group) to this user as the milter will be running under this user id. This is accomplished with the chown command; for the example it would be the following:</p><p><code>$ sudo chown dkim-milter:dkim-milter nov2010 # recall the file has been renamed from nov2010.private to nov2010</code></p><p>The public key will also exist in this directory as a result of the dkim-genkey command issued earlier. It is helpful to keep this file in case something happens to the DNS record.</p><h3>Milter configuration</h3><p>Installation of the yum package will create a generic configuration file that needs tweaking. The comments contained within the file are useful in determining what each option means. I have documented below only the options that are changed to get this to work. These are listed in alphabetical order, the same order as listed in the configuration file.</p><p>Note in other web pages, you will find references to a sysconfig file (/etc/sysconfig/dkim-milter). It is unnecessary to create and maintain this file for the Sendmail/DKIM integration to work.</p><p>The following is a list of options that must be set for the milter to work successfully. Much information about these options is also available in the <a
href="http://manpages.ubuntu.com/manpages/maverick/man5/dkim-filter.conf.5.html" target="_blank">dkim-filter.conf(5) man page</a>.</p><h4>Domain</h4><p>If a KeyList is used (as it is in this example), is not necessary to be specify this option; the signing-domain entries in the KeyList file infer the domains.</p><p>If you plan on only a single domain, set the value of this option to the name of the domain and omit the KeyList parameter.</p><h4>InternalHosts</h4><p>This option specifies hosts (typcially on the local network) whose emails should be signed rather than verified. If an MTA is sitting behind this copy of sendmail (for example an Exchange server), that has this sendmail configured as its smart host, then those hosts need to be listed in this file. The localhost (127.0.0.1) should always be listed in this file.</p><p>Again, I recommend setting it to a file under the dkim-milter directory, such as /etc/mail/dkim-milter/internalhosts and remember to set the appropriate permissions.</p><h4>KeyList</h4><p>The KeyList option specifies where to find the list of private keys for all the domains whose emails are to be signed. I recommend using /etc/mail/dkim-milter/keys/keylist and setting the permissions appropriately. Refer to the following section for the contents of this file.</p><p>If only a single domain is to be used, this option can be omitted and the Domain and Selector options used in its place.</p><h4>MTA</h4><p>Other sites have specified setting this value to MSA; I have left it alone. This limits which emails to sign based on the specified MTA; I choose to not limit signing based on the MTA.</p><h4>Selector</h4><p>If a KeyList is used (as it is in this example), is not necessary to be specify this option; the keypath entries in the KeyList file infer the selector per domain.</p><p>If you plan on only a single domain, set the value of this option to the name of the selector and omit the KeyList parameter. In this example, the selector should be set to nov2010.</p><h4>Socket</h4><p>Many of the examples listed on various web pages specify a TCP port to use for communication. I have chosen to use a <a
href="http://en.wikipedia.org/wiki/Unix_domain_socket" target="_blank">Unix domain socket</a> that is created when the milter is started. By default the socket is created at /var/run/dkim-milter/dkim-milter.sock so the the value for this option is local:/var/run/dkim-milter/dkim-milter.sock. Again, note this dkim-filter daemon is not listening to requests on a TCP port in this example.</p><h4>Syslog</h4><p>Make sure to set this to yes so that you can verify it is working. You may also choose to set the LogWhy parameter to yes to see more debugging information.</p><h4>SyslogSuccess</h4><p>Again, set this to yes to confirm the process has performed successfully. It is very useful in determining what has occurred. The output of the messages from the daemon will b written to the tail end of the /var/log/maillog file.</p><h4>UserID</h4><p>Set this to the user that was created during the package installation: dkim-milter. This will ensure the dkim-filter daemon runs as that user and has limited access to other system files.</p><h4>ADSP*</h4><p>The following two options are used to make the MTA accountable to the ADSP TXT records. These are optional and can be left alone.</p><ul><li>ADSPDiscard yes</li><li>ADSPNoSuchDomain yes</li></ul><h3>KeyList</h3><p>This file specifies the domain or domains that will be signed, the selector for each domain, and the path to the private key used to sign the message. The file is in the format:</p><p><code>sender-pattern:signing-domain:keypath</code></p><p>where,</p><ol><li> <em>sender-pattern</em> is a &#8220;globbed&#8221; string matching the sender&#8217;s mail address to be signed. You may use &#8220;*&#8221; to match zero or more characters in the address for this entry part.</li><li><em>signing-domain</em> is the name of the domain that will have emails signed.</li><li><em>keypath</em> is the full path to the private key file, without an extension. The file must be the name of the selector, as the last part of the keypath must be the selector name. If the file is named with a .pem or .private extension, this should not be specified here.</li></ol><p>To sign all emails from the domain example.com with the selector nov2010, the following entry can be specified:</p><p><code>*:example.com:/etc/mail/dkim-milter/keys/example.com/nov2010</code></p><p>The keypath matches what has been described in this post.</p><h3>Internal hosts</h3><p>Listed as one host per line, this file describes the hosts that send mail on behalf of this domain and need to have the email signed by this milter. It is important to also list the localhost or the computer will not be able to send any signed mail.</p><p>This file is recommended to be created at /etc/mail/dkim-milter/internalhosts with an owner and group of dkim-milter. Refer to the <a
href="http://manpages.ubuntu.com/manpages/maverick/man5/dkim-filter.conf.5.html" target="_blank">dkim-filter.conf(5) man page</a> under the <em>PeerList</em> option for the format for this file.</p><h2>Start the dkim-milter service</h2><p>The package installation created a service but did not configure it to start upon boot. To do this, use the chkconfig command to enable it at run-levels 3, 4, &amp; 5 (or whatever is appropriate for your organization). This is simply accomplished by issuing the following:</p><p><code>$ sudo chkconfig --levels 345 dkim-milter on</code></p><p>To start the service without reboot, issue:</p><p><code>$ sudo service dkim-milter start</code></p><p>If all goes well, it should output the following:</p><p>Starting DomainKeys Identified Mail Milter (dkim-filter):  [  OK  ]</p><p>If it says [FAILED], you must go back and double-check your configuration and access to the files and attempt to start the service again.</p><p>Any time the configuration is modified, restart the service with the following:</p><p><code>$ sudo service dkim-milter restart</code></p><h2>Integrate with sendmail</h2><p>Adding another milter to the sendmail configuration is simple, all that is necessary is the addition of the following line to the sendmail.mc file, rebuild the sendmail.cf file, and restart sendmail. Remembering we chose to communicate through a Unix socket, add this line near the end of the sendmail.mc file (in /etc/mail):</p><p><code>INPUT_MAIL_FILTER(`dkim-filter', `S=local:/var/run/dkim-milter/dkim-milter.sock')</code></p><p>To rebuild the sendmail configuration file, enter the following command:</p><p><code>$ sudo make</code></p><p>If all goes well and you see no output, restart sendmail to use the new milter. This is done by issuing:</p><p><code>$ sudo make restart</code></p><p>or</p><p><code>$ sudo server sendmail restart</code></p><p>If everything has gone well up to this point, the DKIM milter is successfully installed and configured to work with sendmail. You are now ready to test signed email messages.</p><h2>Test</h2><p>There are a number of sites on the web that can test your DKIM configuration. You can perform a DKIM test by sending an email to one of the following addresses:</p><ul><li><a
href="mailto:check-auth@verifier.port25.com">autorespond+dkim@dk.elandsys.com</a></li><li><a
href="mailto:sa-test@sendmail.net">sa-test@sendmail.net</a></li><li><a
href="mailto:check-auth@verifier.port25.com">check-auth@verifier.port25.com</a></li></ul><p>Their email server will respond to the sender with a response indicating the success of the test.</p><p>In testing, I having a running tail of the mail log:</p><p><code>$ sudo tail -f /var/log/maillog</code></p><p>and watch the log as I send the message. If the setup is correct, the sendmail milter will sign the outgoing message and produce a log entry similar to:</p><p><code>dkim-filter[22234]: oAJEplSN026556 "DKIM-Signature" header added</code></p><p>For verification, the log will display messages such as:</p><p><code>dkim-filter[8206]: oAHIoXFJ008437 DKIM verification successful</code></p><p>or</p><p><code>dkim-filter[7882]: oAHIhIXU007949: no signature data</code></p><p>if the sender&#8217;s domain does not publish DKIM information.</p><p>To view the DNS records, use the <strong>dig</strong> command (<strong>host</strong> also works equally well). The following will view the public key information for the nov2010 selector of the example.com domain.</p><p><code>$ dig -t TXT nov2010._domainkey.example.com</code></p><p>And this will view the corresponding ADSP record:</p><p><code>$ dig -t TXT _adsp._domainkey.example.com</code></p><h2>Caveats</h2><p>I have had issues sending to an email account that has the mail forwarded back to the original senders account. For example, if I sent a test message to my gmail account, which in turn automatically forwards it back to me, the message will get lost in limbo, with the dkim-filter complaining that the <em>key retrieval failed</em>. I have yet to figure out the solution, but a work-around is to not sign emails going to those addresses. This is accomplished by setting a comma-separated list of addresses for the value of the <em>DontSignMailTo</em> option in the dkim-milter.conf file.</p><p>I have also had issues using the DNS managers for different ISPs, especially pertaining to quotes. Some of the tools strip the quotes and other keep them. Check the TXT value using the dig command to ensure it looks right. If there is a double-quote in the value escaped with a backslash, then there will be a syntax error with the record and you may seen a message similar to the following in your log.</p><p><code>dkim-filter[6813]: oAI5kwwB012942 ADSP query: syntax error in policy data</code></p> ]]></content:encoded> <wfw:commentRss>http://www.rickwargo.com/2010/11/19/configuring-dkim-and-sendmail-on-fedora-13/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Parallels 6 Is No Longer Activated</title><link>http://www.rickwargo.com/2010/11/18/parallels-6-is-no-longer-activated-2/</link> <comments>http://www.rickwargo.com/2010/11/18/parallels-6-is-no-longer-activated-2/#comments</comments> <pubDate>Fri, 19 Nov 2010 04:23:48 +0000</pubDate> <dc:creator>Rick Wargo</dc:creator> <category><![CDATA[WILT]]></category> <guid
isPermaLink="false">http://www.rickwargo.com/?p=479</guid> <description><![CDATA[While doing some routine housecleaning on my MacBook Pro, I must had inadvertently removed something that caused my licensed and activated copy of Parallels 6 to stop working and request to be activated. Entering in my upgrade key in the activation window only produced a message stating it was an invalid key. The only solution [...]]]></description> <content:encoded><![CDATA[<p>While doing some routine housecleaning on my MacBook Pro, I must had inadvertently removed something that caused my licensed and activated copy of Parallels 6 to stop working and request to be activated. Entering in my upgrade key in the activation window only produced a message stating it was an invalid key.</p><p>The only solution I could find was to completely uninstall my copy of Parallels 6, including all the settings, and <a
href="http://www.parallels.com/download/desktop/" target="_blank">reinstall</a>. I requested a trial key, which I used to start the software. It then asked me to purchase, asking for a new activation key, which I entered. Because it was for an upgrade to Parallels 6, it then asked me for my Parallels 5 activation key, since the software was not installed. Fortunately I had that handy and entered it, successfully re-activating my copy of Parallels 6.</p> ]]></content:encoded> <wfw:commentRss>http://www.rickwargo.com/2010/11/18/parallels-6-is-no-longer-activated-2/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
