<?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>major.io</title>
	<atom:link href="http://major.io/feed/" rel="self" type="application/rss+xml" />
	<link>http://major.io</link>
	<description>Words of wisdom from a Linux engineer focused on information security</description>
	<lastBuildDate>Thu, 16 May 2013 13:06:43 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Changing your ssh server&#8217;s port from the default: Is it worth it?</title>
		<link>http://major.io/2013/05/14/changing-your-ssh-servers-port-from-the-default-is-it-worth-it/</link>
		<comments>http://major.io/2013/05/14/changing-your-ssh-servers-port-from-the-default-is-it-worth-it/#comments</comments>
		<pubDate>Wed, 15 May 2013 04:43:41 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[general advice]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[red hat]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[virtualization]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://major.io/?p=4243</guid>
		<description><![CDATA[Changing my ssh port from the default port (22) has been one of my standard processes for quite some time when I build new servers or virtual machines. However, I see arguments crop up regularly about it (like this reddit thread or this other one). Before I go any further, let&#8217;s settle the &#8220;security through [...]<p><a href="http://major.io/2013/05/14/changing-your-ssh-servers-port-from-the-default-is-it-worth-it/">Changing your ssh server&#8217;s port from the default: Is it worth it?</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
				<content:encoded><![CDATA[<p>Changing my ssh port from the default port (22) has been one of my standard processes for quite some time when I build new servers or virtual machines.  However, I see arguments crop up regularly about it (like <a href="http://redd.it/1ebe0d">this reddit thread</a> or <a href="http://redd.it/fnz1h">this other one</a>).</p>
<p>Before I go any further, let&#8217;s settle the &#8220;security through obscurity&#8221; argument.  <em>(This could probably turn into its own post but I&#8217;ll be brief for now.)</em>  Security should always be applied in layers.  This provides multiple levels of protection from initial attacks, like information gathering attempts or casual threats against known vulnerabilities.  In addition, these layers of security should be applied <b>within</b> the environment so that breaking into one server after getting a pivot point in the environment should be just as difficult (if not more difficult) than the original attack that created the pivot point.  If &#8220;security through obscurity&#8221; tactics make up <em>one layer</em> of a <em>multi-layered solution</em>, I&#8217;d encourage you to obscure your environment as long as it doesn&#8217;t <a href="http://security.blogoverflow.com/2012/08/confidentiality-integrity-availability-the-three-components-of-the-cia-triad/">affect your availability</a>.</p>
<p>The key takeaway is:</p>
<blockquote><p>Security through obscurity is effective if it&#8217;s one layer in a multi-layer security solution</p></blockquote>
<p>Let&#8217;s get back to the original purpose of the post.</p>
<p><strong>The biggest benefit to changing the port is to avoid being seen by casual scans.</strong>  The vast majority of people hunting for any open ssh servers will look for port 22.  Some will try the usual variants, like 222 and 2222, but those are few and far between.  I ran an experiment with a virtual machine exposed to the internet which had sshd listening on port 22.  The server stayed online for one week and then I changed the ssh port to 222.  <strong>The number of attacks dropped by 98%.</strong>  Even though this is solely empirical evidence, it&#8217;s clear that moving off the standard ssh port reduces your server&#8217;s profile.</p>
<p>If it&#8217;s more difficult to scan for your ssh server, your chances of being attacked with an ssh server exploit are reduced.  A determined attacker can still find the port if they know your server&#8217;s IP address via another means (perhaps via a website you host) and they can launch attacks once they find it.  Paranoid server administrators might want to check into <a href="https://wiki.archlinux.org/index.php/Port_Knocking">port knocking</a> to reduce that probability even further.</p>
<p>Remembering the non-standard ssh port can be annoying, but if you have a standard set of workstations that you use for access your servers, just utilize your <code>~/.ssh/config</code> file to specify certain ports for certain servers.  For example:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html" style="font-family:monospace;">Host *.mycompany.com
  Port 4321
&nbsp;
Host nonstandard.mypersonalstuff.com
  Port 2345
&nbsp;
Host *.mypersonalstuff.com
  Port 5432</pre></td></tr></table></div>

<p>If you run into SELinux problems with a non-standard ssh port, there are <a href="/2011/09/15/receive-e-mail-reports-for-selinux-avc-denials/">plenty of guides on this topic.</a>.  The <code>setroubleshoot-server</code> package helps out with this as well.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html" style="font-family:monospace;"># semanage port -a -t ssh_port_t -p tcp 4321
# semanage port -l | grep ssh
ssh_port_t                     tcp      4321,22</pre></td></tr></table></div>

<p>Here is my list of ssh lockdown practices when I build a new server:</p>
<ul>
<li>Update the ssh server package and ensure that automatic updates are configured</li>
<li>Enable SELinux and allow a non-standard ssh port</li>
<li>Add my ssh public key to the server</li>
<li>Disable password logins for ssh</li>
<li>Adjust my <code>AllowUsers</code> setting in sshd_config to only allow my user</li>
<li>Disable root logins</li>
<li>For servers with sensitive data, I install <a href="http://www.fail2ban.org/">fail2ban</a></li>
</ul>
<p><a href="http://major.io/2013/05/14/changing-your-ssh-servers-port-from-the-default-is-it-worth-it/">Changing your ssh server&#8217;s port from the default: Is it worth it?</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://major.io/2013/05/14/changing-your-ssh-servers-port-from-the-default-is-it-worth-it/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Automate CentOS 6 deployments with CIS Security Benchmarks already applied</title>
		<link>http://major.io/2013/04/26/automate-centos-6-deployments-with-cis-security-benchmarks-already-applied/</link>
		<comments>http://major.io/2013/04/26/automate-centos-6-deployments-with-cis-security-benchmarks-already-applied/#comments</comments>
		<pubDate>Fri, 26 Apr 2013 14:15:24 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[kickstart]]></category>
		<category><![CDATA[red hat]]></category>
		<category><![CDATA[rpm]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://major.io/?p=4228</guid>
		<description><![CDATA[A coworker heard me grumbling about Linux system administration standards and recommended that I review the CIS Security Benchmarks. After downloading the Red Hat Enterprise Linux 6 security benchmark PDF, I quickly started to see the value of the document. Some of the standards were the installation defaults, some were often forgotten settings, and some [...]<p><a href="http://major.io/2013/04/26/automate-centos-6-deployments-with-cis-security-benchmarks-already-applied/">Automate CentOS 6 deployments with CIS Security Benchmarks already applied</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
				<content:encoded><![CDATA[<p>A coworker heard me grumbling about Linux system administration standards and recommended that I review the <a href="http://benchmarks.cisecurity.org/">CIS Security Benchmarks</a>.  After downloading the Red Hat Enterprise Linux 6 security benchmark PDF, I quickly started to see the value of the document.  Some of the standards were the installation defaults, some were often forgotten settings, and some were completely brand new to me.</p>
<p>Automating the standards can be a little treacherous simply due to the number of things to adjust and check.  I&#8217;ve created a kickstart for CentOS 6 and tossed it on Github:</p>
<ul>
<li><a href="https://github.com/rackerhacker/securekickstarts">https://github.com/rackerhacker/securekickstarts</a></li>
</ul>
<p>Be sure to read the disclaimers in the <a href="https://github.com/rackerhacker/securekickstarts/blob/master/README.md">README</a> before getting started.  Also, keep in mind that the kickstarts are in no way approved by or affiliated with the <a href="https://www.cisecurity.org/">Center for Internet Security</a> in any way.  This is just something I&#8217;m offering up to the community in the hope that it helps someone.</p>
<p><a href="http://major.io/2013/04/26/automate-centos-6-deployments-with-cis-security-benchmarks-already-applied/">Automate CentOS 6 deployments with CIS Security Benchmarks already applied</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://major.io/2013/04/26/automate-centos-6-deployments-with-cis-security-benchmarks-already-applied/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Limit access to the su command</title>
		<link>http://major.io/2013/04/25/limit-access-to-the-su-command/</link>
		<comments>http://major.io/2013/04/25/limit-access-to-the-su-command/#comments</comments>
		<pubDate>Fri, 26 Apr 2013 04:05:46 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[pam]]></category>
		<category><![CDATA[red hat]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://major.io/?p=4215</guid>
		<description><![CDATA[The wheel group exists for a critical purpose and Wikipedia has a concise definition: In computing, the term wheel refers to a user account with a wheel bit, a system setting that provides additional special system privileges that empower a user to execute restricted commands that ordinary user accounts cannot access. The term is derived [...]<p><a href="http://major.io/2013/04/25/limit-access-to-the-su-command/">Limit access to the su command</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
				<content:encoded><![CDATA[<p>The wheel group exists for a critical purpose and Wikipedia has a <a href="http://en.wikipedia.org/wiki/Wheel_(Unix_term)">concise definition</a>:</p>
<blockquote><p>
In computing, the term wheel refers to a user account with a wheel bit, a system setting that provides additional special system privileges that empower a user to execute restricted commands that ordinary user accounts cannot access. The term is derived from the slang phrase big wheel, referring to a person with great power or influence.
</p></blockquote>
<p>On Red Hat systems (including Fedora), the default <code>sudo</code> configuration allows users in the wheel group to use sudo while all others are restricted from using it in <code>/etc/sudoers</code>:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html" style="font-family:monospace;">## Allows people in group wheel to run all commands
%wheel        ALL=(ALL)       ALL</pre></td></tr></table></div>

<p>However, the <code>su</code> command can be used by all users by default (which is something I often forget).  Fixing it is easy once you take a look at <code>/etc/pam.d/su</code>:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html" style="font-family:monospace;"># Uncomment the following line to require a user to be in the &quot;wheel&quot; group.
#auth		required	pam_wheel.so use_uid</pre></td></tr></table></div>

<p>Uncomment the line and access to <code>su</code> will only be available for users in the wheel group.</p>
<p><a href="http://major.io/2013/04/25/limit-access-to-the-su-command/">Limit access to the su command</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://major.io/2013/04/25/limit-access-to-the-su-command/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Reprint: Stop Disabling SELinux!</title>
		<link>http://major.io/2013/04/19/reprint-stop-disabling-selinux/</link>
		<comments>http://major.io/2013/04/19/reprint-stop-disabling-selinux/#comments</comments>
		<pubDate>Fri, 19 Apr 2013 05:52:23 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[general advice]]></category>
		<category><![CDATA[red hat]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[selinux]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://major.io/?p=4197</guid>
		<description><![CDATA[This article appeared in SC Magazine and I&#8217;ve posted it here as well. For those of you who were left wanting more from my previous SELinux post, this should help. If it doesn&#8217;t help, leave a comment. ;) The push to cloud transforms the way we apply information security principles to systems and applications. Perimeters [...]<p><a href="http://major.io/2013/04/19/reprint-stop-disabling-selinux/">Reprint: Stop Disabling SELinux!</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
				<content:encoded><![CDATA[<p><i>This article appeared in <a href="http://www.scmagazine.com.au/News/340475,stop-disabling-selinux.aspx">SC Magazine</a> and I&#8217;ve posted it here as well.  For those of you who were left wanting more from my <a href="/2013/04/15/seriously-stop-disabling-selinux/">previous SELinux post</a>, this should help.  If it doesn&#8217;t help, leave a comment. ;)</i></p>
<hr />
The push to cloud transforms the way we apply information security principles to systems and applications.  Perimeters of the past, secured heavily with traditional network devices in the outermost ring, lose effectiveness day by day.  Shifting the focus to &#8220;defense in depth&#8221; brings the perimeter down to the individual cloud instances running your application.  Security-Enhanced Linux, or SELinux, forms an effective part of that perimeter.</p>
<p>SELinux operates in the realm of mandatory access control, or MAC.  The design of MAC involves placing constraints on what a user (a <em>subject</em>) can do to a particular object (a <em>target</em>) on the system.  In contrast, discretionary access control, or DAC, allows a user with certain access to use discretion to limit or allow access to certain files, directories, or devices.  You can set any file system permissions that you want but SELinux can override them with ease at the operating system level.</p>
<p>Consider a typical server running a web application.  An attacker compromises the web application and executes malicious code via the web server daemon itself.  SELinux has default policies that prevent the daemon from initiating communication on the network.  That limits the attacker’s options to attack other services or servers.</p>
<p>In addition, SELinux sets policies on which files and directories the web server can access, regardless of any file system permissions.  This protection limits the attacker’s access to other sensitive parts of the file system even if the administrator set the files to be readable to the world.</p>
<p>This is where SELinux shines.  Oddly enough, this is the point where many system administrators actually <em>disable SELinux</em> on their systems.</p>
<p>Troubleshooting these events, called AVC denials, without some helpful tools is challenging and frustrating.  Each denial flows into to your audit log as a cryptic message.  Most administrators will check the usual suspects, like firewall rules and file system permissions.  As frustration builds, they disable SELinux and notice that their application begins working as expected.  SELinux remains disabled and hundreds of helpful policies lie dormant solely because one policy caused a problem.</p>
<p>Disabling SELinux without investigation frustrated me to the point where I started a site at <a href="http://stopdisablingselinux.com">stopdisablingselinux.com</a>.  The site is a snarky response to Linux administrators who reach for the disable switch as soon as SELinux gets in their way.</p>
<p>All jokes aside, here are some helpful tips to use SELinux effectively:</p>
<p><strong>Use the <em>setroubleshoot</em> helpers to understand denials</strong><br />
Working through denials is easy with the <em>setroubleshoot-server</em> package.  When a denial occurs, you still receive a cryptic log message in your audit logs.  However, you also receive a message via syslog that is very easy to read.  Your server can email you these messages as well.  The message contains guidance about adjusting SELinux booleans, setting contexts, or generating new SELinux policies to work around a really unusual problem.  When I say guidance, I mean that the tools give you commands to copy and paste to adjust your policies, booleans and contexts.</p>
<p><strong>Review SELinux booleans for quick adjustments</strong><br />
Although the myriad of SELinux user-space tools isn’t within the scope of this article, <em>getsebool</em> and <em>togglesebool</em> deserve a mention.  Frequently adjusted policies are controlled by booleans that are toggled on and off with <em>togglesebool</em>.  Start with <em>getsebool –a</em> for a full list of booleans and then use <em>togglesebool</em> to enable or disable the policy.</p>
<p><strong>Quickly restore file or directory contexts</strong><br />
Shuffling files or directories around a server can cause SELinux denials due to contexts not matching their original values.  This happens to me frequently if I move a configuration file from one system to another.  Correcting the context problem involves one of two simple commands.  The <em>restorecon</em> command applies the default contexts specific to the file or directory.  If you have a file in the directory with the correct context, use <em>chcon</em> to fix the context on the wrong file by giving it the path to the file with the correct context.</p>
<p>Here are some additional links with helpful SELinux documentation:</p>
<ul>
<li><a href="http://selinuxproject.org/page/Main_Page">SELinux Project Wiki</a></li>
<li><a href="https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security-Enhanced_Linux/">Red Hat Enterprise Linux 6 SELinux Guide</a></li>
<li><a href="http://danwalsh.livejournal.com/">Dan Walsh&#8217;s Blog</a></li>
</ul>
<p><a href="http://major.io/2013/04/19/reprint-stop-disabling-selinux/">Reprint: Stop Disabling SELinux!</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://major.io/2013/04/19/reprint-stop-disabling-selinux/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Seriously, stop disabling SELinux</title>
		<link>http://major.io/2013/04/15/seriously-stop-disabling-selinux/</link>
		<comments>http://major.io/2013/04/15/seriously-stop-disabling-selinux/#comments</comments>
		<pubDate>Tue, 16 Apr 2013 04:40:10 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[general advice]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[selinux]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=4184</guid>
		<description><![CDATA[After many discussions with fellow Linux users, I&#8217;ve come to realize that most seem to disable SELinux rather than understand why it&#8217;s denying access. In an effort to turn the tide, I&#8217;ve created a new site as a public service to SELinux cowards everywhere: stopdisablingselinux.com. Here are some relatively useful SELinux posts from the blog: [...]<p><a href="http://major.io/2013/04/15/seriously-stop-disabling-selinux/">Seriously, stop disabling SELinux</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
				<content:encoded><![CDATA[<p>After many discussions with fellow Linux users, I&#8217;ve come to realize that most seem to disable SELinux rather than understand why it&#8217;s denying access.  In an effort to turn the tide, I&#8217;ve created a new site as a public service to SELinux cowards everywhere: <a href="http://stopdisablingselinux.com/">stopdisablingselinux.com</a>.</p>
<p>Here are some relatively useful SELinux posts from the blog:</p>
<ul>
<li><a href="/2012/01/25/getting-started-with-selinux/">Getting started with SELinux</a></li>
<li><a href="/2011/09/15/receive-e-mail-reports-for-selinux-avc-denials/">Receive email reports for SELinux AVC denials</a></li>
</ul>
<hr />
<b>Edit:</b> The goal of the post was to poke some fun at system administrators who disable SELinux immediately without learning how it works or why they&#8217;re seeing certain operations being denied.  Obviously, if your particular workload or demands don&#8217;t allow for the use of SELinux, then I&#8217;m going to be the last person to encourage you to use it.  Many system administrators have found that it doesn&#8217;t provide a good ratio of work required to benefit gained, which I totally understand.</p>
<p><a href="http://major.io/2013/04/15/seriously-stop-disabling-selinux/">Seriously, stop disabling SELinux</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://major.io/2013/04/15/seriously-stop-disabling-selinux/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Remove sensitive information from email headers with postfix</title>
		<link>http://major.io/2013/04/14/remove-sensitive-information-from-email-headers-with-postfix/</link>
		<comments>http://major.io/2013/04/14/remove-sensitive-information-from-email-headers-with-postfix/#comments</comments>
		<pubDate>Mon, 15 Apr 2013 02:59:34 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[command lines]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=4176</guid>
		<description><![CDATA[I&#8217;m in the process of moving back to a postfix/dovecot setup for hosting my own mail and I wanted a way to remove the more sensitive email headers that are normally generated when I send mail. My goal is to hide the originating IP address of my mail as well as my mail client type [...]<p><a href="http://major.io/2013/04/14/remove-sensitive-information-from-email-headers-with-postfix/">Remove sensitive information from email headers with postfix</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m in the process of moving back to a postfix/dovecot setup for hosting my own mail and I wanted a way to remove the more sensitive email headers that are normally generated when I send mail.  My goal is to hide the originating IP address of my mail as well as my mail client type and version.</p>
<p>To get started, make a small file with regular expressions in <code>/etc/postfix/header_checks</code>:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html" style="font-family:monospace;">/^Received:.*with ESMTPSA/              IGNORE
/^X-Originating-IP:/    IGNORE
/^X-Mailer:/            IGNORE
/^Mime-Version:/        IGNORE</pre></td></tr></table></div>

<p>The &#8220;ESMTPSA&#8221; match works for me because I only send email via port 465.  I don&#8217;t allow SASL authentication via port 25.  You may need to adjust the regular expression if you accept SASL authentication via smtp.</p>
<p>Now, add the following two lines to your <code>/etc/postfix/main.cf</code>:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html" style="font-family:monospace;">mime_header_checks = regexp:/etc/postfix/header_checks
header_checks = regexp:/etc/postfix/header_checks</pre></td></tr></table></div>

<p>Rebuild the hash table and reload the postfix configuration:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html" style="font-family:monospace;">postmap /etc/postfix/header_checks
postfix reload</pre></td></tr></table></div>

<p>Now, send a test email.  View the headers and you should see the original received header (with your client IP address) removed, along with details about your mail client.</p>
<p><a href="http://major.io/2013/04/14/remove-sensitive-information-from-email-headers-with-postfix/">Remove sensitive information from email headers with postfix</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://major.io/2013/04/14/remove-sensitive-information-from-email-headers-with-postfix/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>drbd 8.4.2 for Fedora 17</title>
		<link>http://major.io/2013/03/31/drbd-8-4-2-for-fedora-17/</link>
		<comments>http://major.io/2013/03/31/drbd-8-4-2-for-fedora-17/#comments</comments>
		<pubDate>Sun, 31 Mar 2013 17:35:29 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[drbd]]></category>
		<category><![CDATA[fedora]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=4161</guid>
		<description><![CDATA[Fedora 17 DRBD users should see version 8.4.2 of the DRBD client tools make it into stable repositories soon. This fixes a bug caused when the kernel version was bumped to 3.8 and the kernel module no longer matched the tools. It&#8217;s the same problem that recently cropped up on Fedora 18. drbd 8.4.2 for [...]<p><a href="http://major.io/2013/03/31/drbd-8-4-2-for-fedora-17/">drbd 8.4.2 for Fedora 17</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
				<content:encoded><![CDATA[<p><a href="http://rackerhacker.com/wp-content/uploads/2012/01/fedorainfinity.png"><img src="http://rackerhacker.com/wp-content/uploads/2012/01/fedorainfinity.png" alt="Fedora Infinity Logo" width="105" height="102" class="alignleft size-full wp-image-2712" /></a>Fedora 17 <a href="http://en.wikipedia.org/wiki/DRBD">DRBD</a> users should see version 8.4.2 of the DRBD client tools make it into stable repositories soon.  This <a href="https://bugzilla.redhat.com/show_bug.cgi?id=924821">fixes a bug</a> caused when the kernel version was bumped to 3.8 and the kernel module no longer matched the tools.  It&#8217;s the same problem that <a href="/2013/03/15/drbd-8-4-2-for-fedora-18/">recently cropped up on Fedora 18</a>.</p>
<p><br clear="all"/></p>
<p><a href="http://major.io/2013/03/31/drbd-8-4-2-for-fedora-17/">drbd 8.4.2 for Fedora 17</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://major.io/2013/03/31/drbd-8-4-2-for-fedora-17/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>virt-manager won&#8217;t release the mouse when using ssh forwarding from OS X</title>
		<link>http://major.io/2013/03/20/virt-manager-wont-release-the-mouse-when-using-ssh-forwarding-from-os-x/</link>
		<comments>http://major.io/2013/03/20/virt-manager-wont-release-the-mouse-when-using-ssh-forwarding-from-os-x/#comments</comments>
		<pubDate>Wed, 20 Mar 2013 05:26:56 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[virt-manager]]></category>
		<category><![CDATA[virtualization]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=4149</guid>
		<description><![CDATA[The latest versions of virt-manager don&#8217;t release the mouse pointer when you&#8217;re doing X forwarding to a machine running OS X. This can lead to a rather frustrating user experience since your mouse pointer is totally stuck in the window. Although this didn&#8217;t affect me with CentOS 6 hosts, Fedora 18 hosts were a problem. [...]<p><a href="http://major.io/2013/03/20/virt-manager-wont-release-the-mouse-when-using-ssh-forwarding-from-os-x/">virt-manager won&#8217;t release the mouse when using ssh forwarding from OS X</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
				<content:encoded><![CDATA[<p>The latest versions of <a href="http://virt-manager.org/">virt-manager</a> don&#8217;t release the mouse pointer when you&#8217;re doing X forwarding to a machine running OS X.  This can lead to a rather frustrating user experience since your mouse pointer is totally stuck in the window.  Although this didn&#8217;t affect me with CentOS 6 hosts, Fedora 18 hosts were a problem.</p>
<p>There&#8217;s a <a href="http://blog.loftninjas.org/2010/11/17/virt-manager-keymaps-on-os-x/">relatively elegant fix from btm.geek</a> that solved it for me.  On your Mac, exit X11/Xquartz and create an <code>~/.Xmodmap</code> file containing this:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html" style="font-family:monospace;">clear Mod1
keycode 66 = Alt_L
keycode 69 = Alt_R
add Mod1 = Alt_L
add Mod1 = Alt_R</pre></td></tr></table></div>

<p>Start X11/Xquartz once more and virt-manager should release your mouse pointer if you hold the left control key and left option at the same time.</p>
<p><a href="http://major.io/2013/03/20/virt-manager-wont-release-the-mouse-when-using-ssh-forwarding-from-os-x/">virt-manager won&#8217;t release the mouse when using ssh forwarding from OS X</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://major.io/2013/03/20/virt-manager-wont-release-the-mouse-when-using-ssh-forwarding-from-os-x/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Late night virtualization frustration with kvm</title>
		<link>http://major.io/2013/03/20/late-night-virtualization-frustration-with-kvm/</link>
		<comments>http://major.io/2013/03/20/late-night-virtualization-frustration-with-kvm/#comments</comments>
		<pubDate>Wed, 20 Mar 2013 05:07:21 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[kvm]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[virtualization]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=4137</guid>
		<description><![CDATA[I dragged out an old Aopen MP57-D tonight that was just sitting in the closet and decided to load up kvm on Fedora 18. I soon found myself staring at a very brief error message upon bootup: kvm: disabled by bios After a reboot, the BIOS screen was up and I saw that Virtualization and [...]<p><a href="http://major.io/2013/03/20/late-night-virtualization-frustration-with-kvm/">Late night virtualization frustration with kvm</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
				<content:encoded><![CDATA[<p>I dragged out an old <a href="http://global.aopen.com/products_detail.aspx?Auno=3047">Aopen MP57-D</a> tonight that was just sitting in the closet and decided to load up kvm on Fedora 18.  I soon found myself staring at a very brief error message upon bootup:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html" style="font-family:monospace;">kvm: disabled by bios</pre></td></tr></table></div>

<p>After a reboot, the BIOS screen was up and I saw that Virtualization and VT-d were both enabled.  Trusted execution (TXT) was disabled, so I enabled it for kicks and rebooted.  Now I had two errors:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html" style="font-family:monospace;">kvm: disable TXT in the BIOS or activate TXT before enabling KVM
kvm: disabled by bios</pre></td></tr></table></div>

<p>Time for another trip to the BIOS.  I disabled TXT, rebooted, and I was <em>back to the same error where I first started</em>.  A quick check of <code>/proc/cpuinfo</code> showed that I had the right processor extensions.  Even the output of <code>lshw</code> showed that I should be ready to go.  Some digging in Google led me to a <a href="http://reidablog.blogspot.com/2008/06/with-correct-bios-settings-enabled-on.html">blog post for a fix on Dell Optiplex hardware</a>.</p>
<p>The fix was to do this:</p>
<ol>
<li>Within the BIOS, <b>disable</b> virtualization, VT-d, and TXT</li>
<li>Save the BIOS configuration, reboot, and <strong>pull power to the computer at grub</strong></li>
<li>Within the BIOS, <b>enable</b> virtualization and VT-d but leave TXT disabled</li>
<li>Save the BIOS configuration, reboot, and <strong>pull power to the computer at grub</strong></li>
<li>Boot up the computer normally</li>
</ol>
<p>Although it seems a bit archaic, this actually fixed my problem and set me on my way.</p>
<p><a href="http://major.io/2013/03/20/late-night-virtualization-frustration-with-kvm/">Late night virtualization frustration with kvm</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://major.io/2013/03/20/late-night-virtualization-frustration-with-kvm/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Survive the Google Reader exodus with Tiny Tiny RSS</title>
		<link>http://major.io/2013/03/17/survive-the-google-reader-exodus-with-tiny-tiny-rss/</link>
		<comments>http://major.io/2013/03/17/survive-the-google-reader-exodus-with-tiny-tiny-rss/#comments</comments>
		<pubDate>Sun, 17 Mar 2013 21:27:38 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[general advice]]></category>
		<category><![CDATA[google reader]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=4118</guid>
		<description><![CDATA[It&#8217;s no secret that Google Reader is a popular way to keep up with your RSS feeds, but it&#8217;s getting shelved later this year. Most folks suggested Feedly as a replacement but I found the UI quite clunky in a browser and on Android devices. Then someone suggested Tiny Tiny RSS. I couldn&#8217;t learn more [...]<p><a href="http://major.io/2013/03/17/survive-the-google-reader-exodus-with-tiny-tiny-rss/">Survive the Google Reader exodus with Tiny Tiny RSS</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
				<content:encoded><![CDATA[<p><a href="http://rackerhacker.com/wp-content/uploads/2013/03/tinytinyrss.png"><img src="http://rackerhacker.com/wp-content/uploads/2013/03/tinytinyrss.png" alt="Tiny Tiny RSS" width="124" height="124" class="alignright size-full wp-image-4123" /></a>It&#8217;s no secret that <a href="http://en.wikipedia.org/wiki/Google_Reader">Google Reader</a> is a popular way to keep up with your RSS feeds, but it&#8217;s <a href="http://www.newyorker.com/online/blogs/books/2013/03/farewell-dear-reader.html">getting shelved later this year</a>.  Most folks <a href="http://news.cnet.com/8301-1023_3-57574777-93/feedly-adds-500k-new-users-on-google-decision-to-kill-reader/">suggested Feedly as a replacement</a> but I found the UI quite clunky in a browser and on Android devices.</p>
<p>Then someone suggested <a href="http://tt-rss.org/redmine/projects/tt-rss/wiki">Tiny Tiny RSS</a>.  I couldn&#8217;t learn more about it on the day Google Reader&#8217;s shutdown was announced because the site was slammed.  In a nutshell, Tiny Tiny RSS is a well-written web UI for managing feeds and a handy API for using it with mobile applications.  The backend code is written in PHP and it supports MySQL and Postgres.</p>
<p>There&#8217;s also an <a href="https://play.google.com/store/apps/details?id=org.fox.ttrss&#038;hl=en">Android application</a> that gives you a seven day trial once you install it.  The <a href="https://play.google.com/store/apps/details?id=org.fox.ttrss.key">pro key costs $1.99</a>.</p>
<p>The installation took me a few minutes and then I was off to the races.  I&#8217;d recommend implementing SSL for accessing your installation (unless you like passing credentials in the clear) and enable keepalive connections in Apache.  The UI in the application drags down a ton of javascript as it works and enabling keepalives will keep your page load times low.</p>
<p>If you want to get your Google Reader feeds moved over in bulk, just export them from Google Reader:</p>
<ol>
<li>Click the settings cog at the top right of Google Reader and choose Reader Settings</li>
<li>Choose Import/Export from the menu</li>
<li>Press Export, head over to Google Takeout and download your zip file</li>
</ol>
<p>Unzip the file and find the .xml file.  Open up a browser, access Tiny Tiny RSS and do this:</p>
<ol>
<li>Click Actions > Preferences</li>
<li>Click the Feeds tab</li>
<li>Click the OPML button at the bottom</li>
<li>Import the xml file that was in the zip file from Google</li>
</ol>
<p>From there, just <a href="http://tt-rss.org/redmine/projects/tt-rss/wiki/UpdatingFeeds">choose a method for updating feeds</a> and you should be all set!</p>
<p><a href="http://major.io/2013/03/17/survive-the-google-reader-exodus-with-tiny-tiny-rss/">Survive the Google Reader exodus with Tiny Tiny RSS</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://major.io/2013/03/17/survive-the-google-reader-exodus-with-tiny-tiny-rss/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New icanhaz features: reverse DNS and traceroutes</title>
		<link>http://major.io/2013/03/16/new-icanhaz-features-reverse-dns-and-traceroutes/</link>
		<comments>http://major.io/2013/03/16/new-icanhaz-features-reverse-dns-and-traceroutes/#comments</comments>
		<pubDate>Sun, 17 Mar 2013 03:13:53 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=4105</guid>
		<description><![CDATA[After adding some upgrades for icanhazip.com, I wanted to go a bit further. Adding reverse DNS (PTR) lookups and traceroutes seemed like a decent idea! Want to beta test some new features on icanhazptr.com and icanhaztrace.com? Give them a try! Getting your reverse DNS entry is easy: $ curl -4 icanhazptr.com ord.icanhazip.com $ curl -6 [...]<p><a href="http://major.io/2013/03/16/new-icanhaz-features-reverse-dns-and-traceroutes/">New icanhaz features: reverse DNS and traceroutes</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
				<content:encoded><![CDATA[<p>After <a href="/2013/02/23/more-upgrades-for-icanhazip-com/">adding some upgrades</a> for <a href="http://icanhazip.com">icanhazip.com</a>, I wanted to go a bit further.  Adding reverse DNS (PTR) lookups and traceroutes seemed like a decent idea!</p>
<p>Want to beta test some new features on <a href="http://icanhazptr.com">icanhazptr.com</a> and <a href="http://icanhaztrace.com">icanhaztrace.com</a>?  Give them a try!</p>
<p>Getting your reverse DNS entry is easy:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html" style="font-family:monospace;">$ curl -4 icanhazptr.com
ord.icanhazip.com
$ curl -6 icanhazptr.com
ord.icanhazip.com</pre></td></tr></table></div>

<p>Traceroutes are straightforward as well:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html" style="font-family:monospace;">$ curl -4 icanhaztrace.com
traceroute to 166.78.118.193 (166.78.118.193), 30 hops max, 60 byte packets
 1  212.111.33.229  20.031 ms
 2  212.111.33.233  1.011 ms
 3  149.11.30.61  107.976 ms
...
$ curl -6 icanhaztrace.com
traceroute to 2001:4801:7818:6:abc5:ba2c:ff10:275f (2001:4801:7818:6:abc5:ba2c:ff10:275f), 30 hops max, 80 byte packets
 1  2a01:7e00:ffff:0:8a43:e1ff:fea3:fa7f  2.183 ms
 2  2001:4d78:fe01:2:1:3:b90:1  1.330 ms
 3  2001:978:2:45::d:1  8.388 ms
...</pre></td></tr></table></div>

<p>While this sits in beta, here are some things to keep in mind:</p>
<ul>
<li>If a PTR record doesn&#8217;t exist for your IP address, your IP address will be returned</li>
<li>Failing traceroutes will cause your IP address to be returned</li>
<li>A PTR record will be chosen at random if multiple PTR records are returned</li>
<li>PTR lookups for traceroutes are currently disabled</li>
</ul>
<p>Let me know if you find any bugs.</p>
<p><a href="http://major.io/2013/03/16/new-icanhaz-features-reverse-dns-and-traceroutes/">New icanhaz features: reverse DNS and traceroutes</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://major.io/2013/03/16/new-icanhaz-features-reverse-dns-and-traceroutes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>drbd 8.4.2 for Fedora 18</title>
		<link>http://major.io/2013/03/15/drbd-8-4-2-for-fedora-18/</link>
		<comments>http://major.io/2013/03/15/drbd-8-4-2-for-fedora-18/#comments</comments>
		<pubDate>Fri, 15 Mar 2013 12:28:33 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[drbd]]></category>
		<category><![CDATA[fedora]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=4090</guid>
		<description><![CDATA[If you use DRBD on Fedora 18, there&#8217;s a new client tools package on its way to the stable repositories. The kernel module for DRBD was bumped to 8.4.2 and the client tools have been updated to match it. This fixes a bug that was submitted earlier this month. drbd 8.4.2 for Fedora 18 is [...]<p><a href="http://major.io/2013/03/15/drbd-8-4-2-for-fedora-18/">drbd 8.4.2 for Fedora 18</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
				<content:encoded><![CDATA[<p><a href="http://rackerhacker.com/wp-content/uploads/2012/01/fedorainfinity.png"><img src="http://rackerhacker.com/wp-content/uploads/2012/01/fedorainfinity.png" alt="Fedora Infinity Logo" width="105" height="102" class="alignright size-full wp-image-2712" /></a>If you use <a href="http://en.wikipedia.org/wiki/DRBD">DRBD</a> on Fedora 18, there&#8217;s a <a href="https://admin.fedoraproject.org/updates/FEDORA-2013-3540/drbd-8.4.2-1.fc18">new client tools package</a> on its way to the stable repositories.  The kernel module for DRBD was bumped to 8.4.2 and the client tools have been updated to match it.</p>
<p>This <a href="https://bugzilla.redhat.com/show_bug.cgi?id=917649">fixes a bug</a> that was submitted earlier this month.<br />
<br clear="all"/></p>
<p><a href="http://major.io/2013/03/15/drbd-8-4-2-for-fedora-18/">drbd 8.4.2 for Fedora 18</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://major.io/2013/03/15/drbd-8-4-2-for-fedora-18/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thoughts on RSA Conference 2013</title>
		<link>http://major.io/2013/03/11/thoughts-on-rsa-conference-2013/</link>
		<comments>http://major.io/2013/03/11/thoughts-on-rsa-conference-2013/#comments</comments>
		<pubDate>Mon, 11 Mar 2013 19:23:32 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=4070</guid>
		<description><![CDATA[This year was my first opportunity to attend the RSA Conference and I learned an unbelievable amount inside and outside the sessions. Here&#8217;s are my takeaways from the conference: Be flexible and raise awareness BYOD was a hot topic at this year&#8217;s conference and I was fortunate enough to sit in with a Peer2Peer session [...]<p><a href="http://major.io/2013/03/11/thoughts-on-rsa-conference-2013/">Thoughts on RSA Conference 2013</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
				<content:encoded><![CDATA[<p><a href="http://rackerhacker.com/wp-content/uploads/2013/03/5482.04-moscone-center_2.jpg"><img src="http://rackerhacker.com/wp-content/uploads/2013/03/5482.04-moscone-center_2-300x200.jpg" alt="Moscone Center San Francisco" width="300" height="200" class="alignright size-medium wp-image-4072" /></a>This year was my first opportunity to attend the RSA Conference and I learned an unbelievable amount inside and outside the sessions.  Here&#8217;s are my takeaways from the conference:</p>
<p><strong>Be flexible and raise awareness</strong><br />
BYOD was a hot topic at this year&#8217;s conference and I was fortunate enough to sit in with a Peer2Peer session with 24 other attendees.  One security team member from a large company talked about how they reduced their stress level and increased their effectiveness by focusing on <em>securing the data</em> rather than trying to <em>secure every single device</em> on their network.  It seems trivial at first, but after additional thought, it really makes sense.  Allowing every single device ever made onto your network might not be an option, but there are many actions we can take to make it more difficult for non-trusted machines to access sensitive company data.</p>
<p>Security awareness was talked about often.  No matter how much a company spends on security products, a single user clicking on a phishing email can open the door for attackers.  It&#8217;s critical to make security awareness real by making it personal.  When users think about more of their actions before taking them, the overall security of the business increases.  One of the speakers made a good point that the job of a corporate security team in 2013 is to keep the business secure while allowing employees to soar and do what they do best.  The days of blocking access to everything are over.</p>
<p><strong>Maintain and constantly re-evaluate focus</strong><br />
Securing your entire company isn&#8217;t possible so put your focus on the things that matter most.  Wrap security around the most important data you have and shore up security in areas where you are threatened most often.  A presenter noted that everyone has legacy baggage in their companies but the stronger companies think about the baggage they leave behind before they create it.</p>
<p><strong>Follow your users</strong><br />
The whole idea of encouraging collaborative security between corporate security teams and the business seemed to surprise attendees the most.  One of the talks pushed security departments to learn about what users within the company are doing and how their needs are evolving.  This allows security teams to shift focus, modernize, and provide useful, secure alternatives for employees.</p>
<p><strong>Bring outliers into corporate security</strong><br />
The most moving talk I attended was from <a href="http://en.wikipedia.org/wiki/Winn_Schwartau">Winn Schwartau</a> titled <em><a href="https://ae.rsaconference.com/US13/connect/sessionDetail.ww?SESSION_ID=1582">Solving the Cyber Security Hiring Crisis – Hiring the Un-Hireable</a></em>.  He had a no holds barred talk about the &#8220;hiring crisis&#8221; in information security because we&#8217;re looking for the wrong types of people.  Winn claimed that we&#8217;re looking for clean cut people for corporate security while we should be considering a larger applicant group.  His critical point was that deception should be one of the few reasons (other than lack of skills) for not hiring someone and he offered up several questions to ask to look for deceptive behavior.  Questions like &#8220;How many times have you hacked illegally?&#8221; and &#8220;Do you illegally download music or movies?&#8221; worked well in his experience.</p>
<p>He ended with a quote that I must emphasize:</p>
<blockquote><p>If it&#8217;s important, you&#8217;ll find a way.  If not, you&#8217;ll find an excuse.</p></blockquote>
<p><strong>Summary</strong><br />
Overall, the conference was well worth the trip.  The delegate pass price was quite steep but there were tons of conference organizers and security guards who were happy to help attendees.  There was rarely a time where sessions where scheduled and none of the available sessions interested me.  It was an awesome experience to see Vint Cerf in person and I&#8217;d recommend taking the time to listen to him talk if you ever have the opportunity.</p>
<p>As a side note, I noticed that security awareness among conference attendees was extremely poor.  I&#8217;ll save that for another post.</p>
<p><a href="http://major.io/2013/03/11/thoughts-on-rsa-conference-2013/">Thoughts on RSA Conference 2013</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://major.io/2013/03/11/thoughts-on-rsa-conference-2013/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Controlling sensitive company data means losing some control of it</title>
		<link>http://major.io/2013/03/03/controlling-sensitive-company-data-means-losing-some-control-of-it/</link>
		<comments>http://major.io/2013/03/03/controlling-sensitive-company-data-means-losing-some-control-of-it/#comments</comments>
		<pubDate>Sun, 03 Mar 2013 17:18:13 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[general advice]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=4009</guid>
		<description><![CDATA[This year&#8217;s RSA Conference was full of very useful content but the most useful session for me was a peer to peer discussion regarding BYOD on mobile devices. The session had room for about 25 people and many companies were represented. Some companies were huge, household names, while others were very small. The discussion started [...]<p><a href="http://major.io/2013/03/03/controlling-sensitive-company-data-means-losing-some-control-of-it/">Controlling sensitive company data means losing some control of it</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
				<content:encoded><![CDATA[<p>This year&#8217;s <a href="http://www.rsaconference.com/events/2013/usa/index.htm">RSA Conference</a> was full of very useful content but the most useful session for me was a peer to peer discussion regarding BYOD on mobile devices.  The session had room for about 25 people and many companies were represented.  Some companies were huge, household names, while others were very small.</p>
<p>The discussion started around how to authenticate and manage mobile devices, but it soon ended up covering the handling of data on personal and company-issued devices.  A corporate security leader for a large company said the healthiest shift for them was when they stopped focusing on the devices themselves and moved their focus to the data they wanted to protect.  They found that they could lock down all the devices in the world, but their employees would mishandle the data no matter what actions they took to protect the endpoint.</p>
<p>That led me to start a ruckus on Twitter:</p>
<blockquote class="twitter-tweet tw-align-center" ><p>How does a corporate security team keep sensitive data out of products like Evernote and Dropbox effectively? It&#8217;s a tall order.</p>
<p>&mdash; Major Hayden (@rackerhacker) <a href="https://twitter.com/rackerhacker/status/307996527501119488">March 2, 2013</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<p>Which I soon followed with this:</p>
<blockquote class="twitter-tweet tw-align-center" ><p>My last question got a lot of good responses. Thanks! But how do you *ENFORCE* a corporate policy against something like Dropbox/Evernote?</p>
<p>&mdash; Major Hayden (@rackerhacker) <a href="https://twitter.com/rackerhacker/status/308045768265195521">March 3, 2013</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<p>The responses started piling up in a hurry.  <em>(To see the verbatim responses for yourself, click the date on one the embedded tweets above.)</em>  Here&#8217;s a quick summary of the suggested ways to attack the problem from the tweets I received:</p>
<ul>
<li><b>Education &#038; awareness</b> &#8211; Ensure that users not only understand where they should keep confidential data but also ensure they understand how to classify the data they&#8217;re handling.</li>
<li><b>Provide alternatives</b> &#8211; If users like the functionality of a particular product, try to purchase an enterprise version of the product or re-create the product internally.  Users will be more likely to use the approved version of the product and the company will have a bit more control over the data.</li>
<li><b>Top-down policies &#038; enforcement</b> &#8211; Make policies that define where data can and cannot go and follow that up with enforcement and accountability.</li>
<li><b>Deny access</b> &#8211; Set firewall or DLP policies to disallow access to certain products while on the corporate network.  This doesn&#8217;t cover situations where employees are off the corporate network.</li>
</ul>
<p>Many people suggested a blend between educating, providing alternatives, and enforcement.  This is a real change for corporate IT and security departments that would normally opt for denying access to unapproved applications entirely.  This quickly turns into a game of cat-and-mouse in which there are no clear winners.</p>
<p>Take an example like Evernote.  If I was blocked from accessing it at work, I could VPN into another location and send Evernote over the VPN.  If VPN access was blocked, I could start an ssh proxy and send the Evernote traffic through it.  If ssh was blocked, I could remotely access another system via RDP or VNC where Evernote was installed and use it there.  The truly frustrated user might invest in a 3G/4G device and use that in the office instead.  That&#8217;s even worse for the security department since none of their traffic would be passing through the corporate network.</p>
<p>Here are my suggestions for protecting data at a modern company:</p>
<ol>
<li><b>Listen to your users</b> &#8211; Find out why users like a particular third party application and why they don&#8217;t like the current tools provided by the company.  Learn about the types of data they&#8217;re storing on that third party application.</li>
<li><b>Regain some control of your data through alternatives</b> &#8211; If your users prefer a particular application, try to purchase an enterprise or self-hosted version of the application.  Your users will be pleased since they get the functionality they expect and the security teams can gain a little more control over the data stored in the application.</li>
<li><b>Make a solid data classification policy</b> &#8211; Creating an easy to use data classification policy is the first step to securing your data through awareness.  Employees need to identify the sensitivity of the data they&#8217;re handling before they can know what they can and can&#8217;t do with it.  Make the data classifications easy to identify and ensure that users have an escalation point they can use when they have questions or they need to release sensitive data.</li>
<li><b>Create enforcement policies</b> &#8211; If a user deliberately disobeys corporate policy, this where the rubber meets the road.  Ensure that the policy is fair to users of various technical levels within the company and vet it thoroughly with your legal and HR departments.  These enforcement policies may be required by various compliance programs, so check to see if they&#8217;re on paper but not enforced.</li>
<li><b>Educate users about sensitive data</b> &#8211; Humanize your data classification policy and help users understand how to identify and handle sensitive data.  Remind employees about the importance of company data and what can happen if it was misplaced or stolen.  There will be a <em>significant</em> amount of questions coming from this process so be sure that you&#8217;re ready to tackle them.  If you do this right, you&#8217;ll get employees policing themselves and their peers.</li>
<li><b>Rinse and repeat</b> &#8211; Regularly check in with users to verify that the internal applications are meeting their needs.  Go through the awareness work on a regular basis.  When policies become dormant or ineffective, revise them to meet the current needs.</li>
</ol>
<p>This problem isn&#8217;t going away anytime soon and it&#8217;s rapidly evolving.  Your corporate security department must evolve with it.  A coworker of mine hit the nail on the head with this:</p>
<blockquote class="twitter-tweet tw-align-center" ><p>@<a href="https://twitter.com/rackerhacker">rackerhacker</a> that&#8217;s probably the number 1 security dilemma for the next two years.</p>
<p>&mdash; letterj (@letterj) <a href="https://twitter.com/letterj/status/308040745527410688">March 3, 2013</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<p>The best thing about this approach is that it scales better and is more effective than denying access.  It takes a significant amount of work up front for a corporate security department, but it pays off in the end.  Employees soon call out other employees for poor security hygiene and they become informal delegates of the corporate security team.  Security can go viral in your organization just like the usage of third party tools.</p>
<p><strong>The key to success is driving security innovation within your company that equals or outpaces the innovation coming from third party applications.</strong></p>
<p>New tools and services may appear on a daily basis, but if your employees know what belongs there and what doesn&#8217;t, they&#8217;ll do your work for you.</p>
<p><a href="http://major.io/2013/03/03/controlling-sensitive-company-data-means-losing-some-control-of-it/">Controlling sensitive company data means losing some control of it</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://major.io/2013/03/03/controlling-sensitive-company-data-means-losing-some-control-of-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;m recruiting at the RSA Conference in San Francisco</title>
		<link>http://major.io/2013/02/24/im-recruiting-at-the-rsa-conference-in-san-francisco/</link>
		<comments>http://major.io/2013/02/24/im-recruiting-at-the-rsa-conference-in-san-francisco/#comments</comments>
		<pubDate>Sun, 24 Feb 2013 15:00:57 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[career]]></category>
		<category><![CDATA[rackspace]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=3981</guid>
		<description><![CDATA[RSA: Recruiting Security Architects &#8212; that&#8217;s what I&#8217;m doing! (See what I did there?) Are you planning to attend the RSA Conference in San Francisco this year? Are you looking for a new career with a security team that strives to break the mold of traditional security? If so, apply for the open position and [...]<p><a href="http://major.io/2013/02/24/im-recruiting-at-the-rsa-conference-in-san-francisco/">I&#8217;m recruiting at the RSA Conference in San Francisco</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
				<content:encoded><![CDATA[<p><div id="attachment_3989" class="wp-caption alignright" style="width: 310px"><a href="http://rackerhacker.com/wp-content/uploads/2013/02/Building-Picture-The-Castle-300x199.jpg"><img src="http://rackerhacker.com/wp-content/uploads/2013/02/Building-Picture-The-Castle-300x199.jpg" alt="Rackspace HQ - The Castle - San Antonio, TX" width="300" height="199" class="size-full wp-image-3989" /></a><p class="wp-caption-text">Rackspace&#8217;s HQ in San Antonio, &#8220;The Castle&#8221;</p></div>RSA: Recruiting Security Architects &#8212; that&#8217;s what I&#8217;m doing! (See what I did there?)</p>
<p>Are you planning to attend the RSA Conference in San Francisco this year?  Are you looking for a new career with a security team that strives to break the mold of traditional security?  If so, <a href="http://jobs.rackspace.com/job/San-Antonio-Senior-Security-Architect-US-Job-TX-78201/2223051/">apply for the open position</a> and let&#8217;s meet at the conference.  I&#8217;ll be glad to answer questions about what makes security at Rackspace so unique.</p>
<p>We&#8217;re looking for enthusiastic Security Architects who think that securing a company as dynamic as Rackspace is more than just a job.  Our team constantly finds new ways to do the traditional work of securing the business.  We still do much of the traditional security work, like assessments, compliance programs, and incident response, but we take an entirely different approach.  Imagine a security environment where policy creation is collaborative with less friction when it comes time for implementation.  That&#8217;s just the tip of the iceberg.</p>
<p><strong>Interested?</strong>  Get in touch with me to learn more.</p>
<p><a href="http://major.io/2013/02/24/im-recruiting-at-the-rsa-conference-in-san-francisco/">I&#8217;m recruiting at the RSA Conference in San Francisco</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://major.io/2013/02/24/im-recruiting-at-the-rsa-conference-in-san-francisco/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More upgrades for icanhazip.com</title>
		<link>http://major.io/2013/02/23/more-upgrades-for-icanhazip-com/</link>
		<comments>http://major.io/2013/02/23/more-upgrades-for-icanhazip-com/#comments</comments>
		<pubDate>Sat, 23 Feb 2013 20:15:24 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=3993</guid>
		<description><![CDATA[The feature requests for icanhazip.com finally pushed me over the edge and I&#8217;ve made some significant changes. Here we go: Get around proxies on port 81 Quite a few people had issues with local proxies that filtered traffic on port 80 and delivered the wrong results for their external IP address. You can now reach [...]<p><a href="http://major.io/2013/02/23/more-upgrades-for-icanhazip-com/">More upgrades for icanhazip.com</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
				<content:encoded><![CDATA[<p>The feature requests for icanhazip.com finally pushed me over the edge and I&#8217;ve made some significant changes.  Here we go:</p>
<p><strong>Get around proxies on port 81</strong><br />
Quite a few people had issues with local proxies that filtered traffic on port 80 and delivered the wrong results for their external IP address.  You can now <a href="http://icanhazip.com:81/">reach the site on port 81</a>.</p>
<p><strong>Get your external IP address over HTTPS</strong><br />
Some users reported that defensive network infrastructure mangled all of their web traffic to the site, so I&#8217;ve <a href="https://icanhazip.com/">enabled SSL listeners</a> for icanhazip.com.  Bear in mind that the SSL certificate is only valid for icanhazip.com and not the other subdomains (like ipv4.icanhazip.com).  If you are using applications like curl to access subdomains, you&#8217;ll need to use the <code>-k</code> argument, like this:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html" style="font-family:monospace;">$ curl https://icanhazip.com/
74.125.225.224
$ curl https://ipv4.icanhazip.com/
curl: (51) SSL peer certificate or SSH remote key was not OK
$ curl -k https://ipv4.icanhazip.com/
74.125.225.224</pre></td></tr></table></div>

<p><strong>Local icanhazip.com servers</strong><br />
The site now exists in Dallas-Fort Worth (US), Chicago (US), and Maidenhead (UK).  There are many new DNS records available to use:</p>
<ul>
<li>Random location: icanhazip.com, ipv4.icanhazip.com, ipv6.icanhazip.com</li>
<li>DFW: dfw.icanhazip.com, ipv4.dfw.icanhazip.com, ipv6.dfw.icanhazip.com</li>
<li>ORD: ord.icanhazip.com, ipv4.ord.icanhazip.com, ipv6.ord.icanhazip.com</li>
<li>UK: uk.icanhazip.com, ipv4.uk.icanhazip.com, ipv6.uk.icanhazip.com</li>
</ul>
<p>One of the HTTP response headers should confirm which node you&#8217;re querying:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html" style="font-family:monospace;">$ curl -si icanhazip.com | grep NODE
X-ICANHAZNODE: ord.icanhazip.com</pre></td></tr></table></div>

<p><strong>Let me know what you think!</strong><br />
If you have new ideas for features, let me know.  Also, be sure to tell me if something&#8217;s not working properly for you.</p>
<p><a href="http://major.io/2013/02/23/more-upgrades-for-icanhazip-com/">More upgrades for icanhazip.com</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://major.io/2013/02/23/more-upgrades-for-icanhazip-com/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Six years of rackerhacker.com</title>
		<link>http://major.io/2013/02/22/six-years-of-rackerhacker-com/</link>
		<comments>http://major.io/2013/02/22/six-years-of-rackerhacker-com/#comments</comments>
		<pubDate>Fri, 22 Feb 2013 18:10:20 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=3971</guid>
		<description><![CDATA[It&#8217;s that time of year again: $ whois rackerhacker.com &#124; grep date Creation date: 14 Feb 2007 00:22:00 Expiration date: 14 Feb 2017 00:22:00 The blog is now six years old! Thanks to everyone who has followed it, commented, and suggested new topics for posts. You may have noticed that I&#8217;m adding content a bit [...]<p><a href="http://major.io/2013/02/22/six-years-of-rackerhacker-com/">Six years of rackerhacker.com</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s that time of year again:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html" style="font-family:monospace;">$ whois rackerhacker.com | grep date
Creation date: 14 Feb 2007 00:22:00
Expiration date: 14 Feb 2017 00:22:00</pre></td></tr></table></div>

<p><strong>The blog is now six years old!</strong>  Thanks to everyone who has followed it, commented, and suggested new topics for posts.</p>
<p>You may have noticed that I&#8217;m adding content a bit slower than I usually do, and that&#8217;s probably due to two big factors: we have a newborn at the house and <a href="/2012/11/26/reaching-a-new-milestone-and-making-some-big-changes/">my work at Rackspace has totally changed</a>.  I&#8217;ve received quite a few ideas for new posts from readers and I&#8217;ve come up with some of my own.  Thanks to some help from a friend, I should have some more posts on the <a href="http://www.rackspace.com/blog/">Rackspace Blog</a> as well this year.</p>
<p><a href="http://major.io/2013/02/22/six-years-of-rackerhacker-com/">Six years of rackerhacker.com</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://major.io/2013/02/22/six-years-of-rackerhacker-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Block Flash and Java in your browser today</title>
		<link>http://major.io/2013/02/22/block-flash-and-java-in-your-browser-today/</link>
		<comments>http://major.io/2013/02/22/block-flash-and-java-in-your-browser-today/#comments</comments>
		<pubDate>Fri, 22 Feb 2013 16:56:31 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=3942</guid>
		<description><![CDATA[If you haven&#8217;t heard about the wave of security issues caused by Java and Flash in recent months, you must be living under a rock. Attackers are getting smarter by delivering more 0-day exploits that fly under the radar of traditional A/V products and patches from the vendors are lagging behind. How can you attack [...]<p><a href="http://major.io/2013/02/22/block-flash-and-java-in-your-browser-today/">Block Flash and Java in your browser today</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
				<content:encoded><![CDATA[<p>If you haven&#8217;t heard about the wave of security issues caused by Java and Flash in recent months, <a href="https://www.google.com/search?btnG=1&#038;pws=0&#038;q=java+0-day">you must be living under a rock</a>.  Attackers are getting smarter by delivering more 0-day exploits that fly under the radar of traditional A/V products and patches from the vendors are lagging behind.  How can you attack the problem in the meantime?</p>
<p><strong>Be smart and only enable Flash and Java for the sites you explicitly trust.</strong></p>
<p>Although the whitelisting process may slow you down at first, the number of times you need to whitelist a site will decrease over time.  The added security benefit of disabling these plugins far outweighed the minor annoyance of whitelisting for me.</p>
<p>The Naked Security blog from Sophos has <a href="http://nakedsecurity.sophos.com/how-to-disable-java-chrome/">instructions for disabling Java in various browsers</a>.  For Flash, there are some handy plugins and extensions available for <a href="https://chrome.google.com/webstore/detail/flashblock/gofhjkjmkpinhpoiabjplobcaignabnl?hl=en">Chrome</a>, <a href="https://addons.mozilla.org/en-US/firefox/addon/flashblock/">Firefox</a>, and <a href="http://clicktoflash.com/">Safari</a>.</p>
<p>Keep in mind that Java and Flash vulnerabilities <strong>will affect</strong> all operating systems in some way.  Although much of the malware dropped by vulnerable applications is written for Windows, there are an increasing number of malware variants which are able to infect OS X and Linux.  Facebook and Apple are currently <a href="http://www.usatoday.com/story/tech/2013/02/19/apple-hackers-facebook/1930737/">working through some compromises</a> on various operating systems.</p>
<p><a href="http://major.io/2013/02/22/block-flash-and-java-in-your-browser-today/">Block Flash and Java in your browser today</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://major.io/2013/02/22/block-flash-and-java-in-your-browser-today/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick access to OpenPGP tasks with GPGTools in OS X</title>
		<link>http://major.io/2013/02/08/quick-access-to-openpgp-tasks-with-gpgtools-in-os-x/</link>
		<comments>http://major.io/2013/02/08/quick-access-to-openpgp-tasks-with-gpgtools-in-os-x/#comments</comments>
		<pubDate>Fri, 08 Feb 2013 19:05:30 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[pgp]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=3924</guid>
		<description><![CDATA[I&#8217;ve been a big fan of the GPGTools suite for Mac for quite a while but I discovered some neat features when right-clicking on a file in Finder today. It&#8217;s a bit disappointing that I didn&#8217;t find these sooner! Encrypting files is simple: just click OpenPGP: Encrypt File and a window will pop asking you [...]<p><a href="http://major.io/2013/02/08/quick-access-to-openpgp-tasks-with-gpgtools-in-os-x/">Quick access to OpenPGP tasks with GPGTools in OS X</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
				<content:encoded><![CDATA[<p><a href="http://rackerhacker.com/wp-content/uploads/2013/02/gpgtoolscontextmenu.jpg"><img src="http://rackerhacker.com/wp-content/uploads/2013/02/gpgtoolscontextmenu.jpg" alt="GPGTools Mac context menu" width="446" height="214" class="alignright size-full wp-image-3936" /></a>I&#8217;ve been a big fan of the <a href="https://www.gpgtools.org/">GPGTools suite for Mac</a> for quite a while but I discovered some neat features when right-clicking on a file in Finder today.  It&#8217;s a bit disappointing that I didn&#8217;t find these sooner!</p>
<p>Encrypting files is simple: just click <strong>OpenPGP: Encrypt File</strong> and a window will pop asking you which key you&#8217;d like to use for encryption.  You also have the option of encrypting it with a password.  Decrypting, signing, and validating files is easy and extremely fast.  In addition, you&#8217;ll get Growl notifications upon success or failure.</p>
<p>GPGTools also integrates with Mail.app to allow for seamless signing, encrypting, decrypting and verification of email content.  There&#8217;s a preview version available that integrates quite well with Mountain Lion&#8217;s Mail.app, but you can only acquire it <a href="https://www.gpgtools.org/donate.html#donate-paypal">via donation</a>.</p>
<p><a href="http://major.io/2013/02/08/quick-access-to-openpgp-tasks-with-gpgtools-in-os-x/">Quick access to OpenPGP tasks with GPGTools in OS X</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://major.io/2013/02/08/quick-access-to-openpgp-tasks-with-gpgtools-in-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What my toddler taught me about information security</title>
		<link>http://major.io/2013/01/13/what-my-toddler-taught-me-about-information-security/</link>
		<comments>http://major.io/2013/01/13/what-my-toddler-taught-me-about-information-security/#comments</comments>
		<pubDate>Sun, 13 Jan 2013 17:15:47 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[general advice]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=3904</guid>
		<description><![CDATA[My new role has caused me to look at information security in a different way. It&#8217;s always been a hobby for me but I enjoy the challenge of making it my focus each day. Many companies seem to make a natural progression in security as they grow larger, bring on larger accounts, or find themselves [...]<p><a href="http://major.io/2013/01/13/what-my-toddler-taught-me-about-information-security/">What my toddler taught me about information security</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
				<content:encoded><![CDATA[<p>My <a href="/2012/11/26/reaching-a-new-milestone-and-making-some-big-changes/">new role</a> has caused me to look at information security in a different way.  It&#8217;s always been a hobby for me but I enjoy the challenge of making it my focus each day.</p>
<p>Many companies seem to make a natural progression in security as they grow larger, bring on larger accounts, or find themselves subject to regulation or compliance requirements.  That gradual process is usually more straightforward than the reactive process brought on by a security breach and it ends up delivering better overall results for the company.</p>
<p>This reactive process seems oddly similar to the way my son has learned to eat.  Confused?  Keep reading.</p>
<p><b>Entirely oblivious</b><br />
This is how my son first got started.  He was so busy trying to figure out how to eat that he had no idea how much of a mess he was making.  Eventually, someone would either step in all of the dropped food or spilled juice and it would be all over the kitchen.</p>
<p>If you replace the food and juice with information at a small company, you can see how the same would apply.  Many startups and small businesses are focused so heavily on building a product or brand that they forget about the importance of securing the data they are generating and collecting.  Everything from trade secrets to sensitive customer data is at risk of being lost.  Basic security measures are taken and there&#8217;s usually no way to know if a breach has occurred and how deep the breach has gone.</p>
<p><b>Purely reactionary</b><br />
Eventually my son realized that making a mess wasn&#8217;t a good thing and he started to react whenever he ended up with a lap full of spaghetti.  He would notice the problem and cry for someone else to come and help.  I&#8217;d clean him up and he was back to normal again.  The food would end up in his lap again, he would cry, and I&#8217;d be back to clean it up.</p>
<p>Companies find themselves in this situation when they&#8217;ve been hit with a breach previously and a new issue has appeared.  Their security stance has only changed a little and they&#8217;re able to determine that something has happened after it has happened.  Companies in this stage may consider creating a team focused on security issues or they may look to outside contractors or consultants for help.  Much of the focus now shifts to answering &#8220;how do we prevent this from happening again?&#8221;</p>
<p><b>Partially proactive</b><br />
As my son became more skillful at working with a fork and a spoon, he was able to be more focused on eating and he made fewer messes.  They may have occurred less frequently but when they did occur, his clothes still needed to be washed and he was still quite upset.  He knew what to watch out for and he knew which foods were going to present a particular challenge.  It was obvious that he was putting in much more effort to eat spaghetti than he would with something simple like crackers.</p>
<p>This stage in a company&#8217;s development usually involves a dedicated or semi-dedicated security team that is beginning to understand the threats and risks involved with the company&#8217;s operation.  They&#8217;re putting focus in certain higher-risk areas but there&#8217;s still not a lot of proactive work being done to limit the damage from security breaches.  For example, a company might institute stricter firewall rules and OS patching for their most important servers but they might not have any security within their internal network.  This would allow an attacker free reign over the environment if they can take over one of the servers.</p>
<p><b>Passionately proactive</b><br />
When my son eats, he does quite a few things to ensure success.  First off, he sits down and asks for his chair to be pushed in before he eats.  He wants a paper towel close by in case something bad happens.  With certain foods, he knows the chance of making a mess is higher and he tries to put less of it on his fork.  He&#8217;s determined to not let food get in his lap, and when it does, he wants to ensure that his clothes stay as clean as possible.</p>
<p>Companies that reach this stage have now realized the risks involved in the operation of their business and they&#8217;ve determined how to reduce the impact of a breach.  They&#8217;re consciously aware that they&#8217;re a target and they are taking an offensive security stance.  These companies often test their own security measures to make sure that they&#8217;re effective against the most frequently seen threats.  Their security posture isn&#8217;t perfect, but they are able to react more efficiently (and with less chaos) when a serious issue presents itself.</p>
<p><b>So let&#8217;s summarize&#8230;</b><br />
Some readers may think this post is way too generalized.  However, the generalization is the point I&#8217;m trying to make.  Creating a security mindset within a company is generally the easy part; applying it is where things get tough.  The concept of information security is actually quite simple: ensure that information is readily available to people who should be able to access it and ensure it&#8217;s not available for people who shouldn&#8217;t.  If you&#8217;re starting a small business or you&#8217;re working for one right now, build your products and your infrastructure with security in mind.  Your other option is to retrofit it later, but you&#8217;ll surely make a mess.</p>
<p><a href="http://major.io/2013/01/13/what-my-toddler-taught-me-about-information-security/">What my toddler taught me about information security</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://major.io/2013/01/13/what-my-toddler-taught-me-about-information-security/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fixing the Lenovo X1 Carbon&#8217;s washed out display</title>
		<link>http://major.io/2013/01/08/fixing-the-lenovo-x1-carbons-washed-out-display/</link>
		<comments>http://major.io/2013/01/08/fixing-the-lenovo-x1-carbons-washed-out-display/#comments</comments>
		<pubDate>Tue, 08 Jan 2013 16:30:54 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[display]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[lenovo]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mint]]></category>
		<category><![CDATA[thinkpad]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=3899</guid>
		<description><![CDATA[Although the X1 Carbon has a much better looking display than the T430s, it still looked a bit washed out when I compared it to other monitors right next to it. The entire display had a weak blue tint and it was difficult to use for extended periods, especially at maximum brightness. A quick Google [...]<p><a href="http://major.io/2013/01/08/fixing-the-lenovo-x1-carbons-washed-out-display/">Fixing the Lenovo X1 Carbon&#8217;s washed out display</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
				<content:encoded><![CDATA[<p>Although the X1 Carbon has a <a href="/2012/10/21/lenovo-thinkpad-t430s-review/">much better looking display than the T430s</a>, it still looked a bit washed out when I compared it to other monitors right next to it.  The entire display had a weak blue tint and it was difficult to use for extended periods, especially at maximum brightness.</p>
<p>A quick Google search took me to a <a href="https://answers.launchpad.net/ubuntu-certification/+question/177299">LaunchPad entry</a> about a <a href="http://www.notebookcheck.net/Review-Lenovo-ThinkPad-X1-Subnotebook.55370.0.html">better ICC profile for the X1 Carbon</a>.  After applying the ICC file via GNOME Control Center&#8217;s Color panel, the display looks fantastic.</p>
<p>Feel free to download a copy of the color profile and try it for yourself:</p>
<ul>
<li><a href="http://www.notebookcheck.net/uploads/tx_nbc2/Lenovo_ThinkPad_X1_1366x768_glare_LP133WH2-TLM5.icc">Original Link</a></li>
<li><a href="http://dl.dropbox.com/u/1143344/Lenovo_ThinkPad_X1_1366x768_glare_LP133WH2-TLM5.icc">Mirror</a></li>
</ul>
<p><a href="http://major.io/2013/01/08/fixing-the-lenovo-x1-carbons-washed-out-display/">Fixing the Lenovo X1 Carbon&#8217;s washed out display</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://major.io/2013/01/08/fixing-the-lenovo-x1-carbons-washed-out-display/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Handy settings for the touchpad/clickpad in the Lenovo X1 Carbon</title>
		<link>http://major.io/2012/12/28/handy-settings-for-the-touchpadclickpad-in-the-lenovo-x1-carbon/</link>
		<comments>http://major.io/2012/12/28/handy-settings-for-the-touchpadclickpad-in-the-lenovo-x1-carbon/#comments</comments>
		<pubDate>Fri, 28 Dec 2012 16:15:42 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[lenovo]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[synaptics]]></category>
		<category><![CDATA[xorg]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=3885</guid>
		<description><![CDATA[The Lenovo X1 Carbon comes with a pretty useful clickpad just below the keyboard, but the default synaptics settings in X from a Fedora 17 installation aren&#8217;t the best for this particular laptop. I found some tips about managing clickpads in a Github Gist about the Samsung Series 9 and I adjusted the values for [...]<p><a href="http://major.io/2012/12/28/handy-settings-for-the-touchpadclickpad-in-the-lenovo-x1-carbon/">Handy settings for the touchpad/clickpad in the Lenovo X1 Carbon</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
				<content:encoded><![CDATA[<p>The Lenovo X1 Carbon comes with a pretty useful clickpad just below the keyboard, but the default synaptics settings in X from a Fedora 17 installation aren&#8217;t the best for this particular laptop.  I found some tips about managing clickpads in a <a href="https://gist.github.com/2382480">Github Gist about the Samsung Series 9</a> and I adjusted the values for the X1.  To get my configuration, just create <code>/etc/X11/xorg.conf.d/10-synaptics.conf</code> and toss this data in there:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html" style="font-family:monospace;">Section &quot;InputClass&quot;
        Identifier &quot;touchpad catchall&quot;
        Driver &quot;synaptics&quot;
        MatchIsTouchpad &quot;on&quot;
        MatchDevicePath &quot;/dev/input/event*&quot;
        Option &quot;TapButton1&quot; &quot;1&quot;
        Option &quot;TapButton2&quot; &quot;3&quot;
        Option &quot;TapButton3&quot; &quot;2&quot;
	Option &quot;VertTwoFingerScroll&quot; &quot;on&quot;
	Option &quot;HorizTwoFingerScroll&quot; &quot;on&quot;
	Option &quot;HorizHysteresis&quot; &quot;50&quot;
	Option &quot;VertHysteresis&quot; &quot;50&quot;
	Option &quot;PalmDetect&quot;    &quot;1&quot;
	Option &quot;PalmMinWidth&quot;  &quot;5&quot;
	Option &quot;PalmMinZ&quot;      &quot;40&quot;
EndSection</pre></td></tr></table></div>

<p>There are a few important settings here to note:</p>
<ul>
<li><b>TapButtonX</b> &#8211; this sets up the single, double and triple taps to match up to left, right and middle mouse clicks respectively</li>
<li><b>Vert/HorizHysteresis</b> &#8211; reduces movement during and between taps
</li>
<li><b>Palm*</b> &#8211; enables palm detection while you&#8217;re typing with some reasonable settings</li>
</ul>
<p>You will need to restart X (or reboot) to apply these settings from the configuration file.  If you want to test the settings before restarting, you can apply individual adjustments with <code>synclient</code> without any restarts:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html" style="font-family:monospace;">synclient &quot;HorizHysteresis=50&quot;</pre></td></tr></table></div>

<p><a href="http://major.io/2012/12/28/handy-settings-for-the-touchpadclickpad-in-the-lenovo-x1-carbon/">Handy settings for the touchpad/clickpad in the Lenovo X1 Carbon</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://major.io/2012/12/28/handy-settings-for-the-touchpadclickpad-in-the-lenovo-x1-carbon/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Launch applications quickly with dmenu in XFCE</title>
		<link>http://major.io/2012/12/27/launch-applications-quickly-with-dmenu-in-xfce/</link>
		<comments>http://major.io/2012/12/27/launch-applications-quickly-with-dmenu-in-xfce/#comments</comments>
		<pubDate>Thu, 27 Dec 2012 21:09:43 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[xfce]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=3874</guid>
		<description><![CDATA[Ever since I saw QuickSilver for the first time, I&#8217;ve been hooked on quick application launchers. I&#8217;ve struggled to find a barebones, auto-completing application launcher in Linux for quite some time. My search has ended with dmenu. I stumbled upon dmenu after trying out the i3 tiling window manager and I was hooked almost immediately. [...]<p><a href="http://major.io/2012/12/27/launch-applications-quickly-with-dmenu-in-xfce/">Launch applications quickly with dmenu in XFCE</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
				<content:encoded><![CDATA[<p>Ever since I saw <a href="http://en.wikipedia.org/wiki/Quicksilver_(software)">QuickSilver</a> for the first time, I&#8217;ve been hooked on quick application launchers.  I&#8217;ve struggled to find a barebones, auto-completing application launcher in Linux for quite some time.  My search has ended with <a href="http://tools.suckless.org/dmenu/">dmenu</a>.</p>
<p>I stumbled upon dmenu after trying out the <a href="http://i3wm.org/">i3 tiling window manager</a> and I was hooked almost immediately.  It&#8217;s extremely fast, unobtrusive, and the auto-completion is really intuitive.  Another added bonus is that there is no daemon or window manager hook required for the launcher to operate.</p>
<p>Installing dmenu on Fedora is as easy as:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html" style="font-family:monospace;">yum install dmenu</pre></td></tr></table></div>

<p>XFCE is my desktop environment of choice and the dmenu integration is pretty simple:</p>
<ul>
<li><strong>Applications Menu</strong> > <strong>Settings</strong> > <strong>Keyboard</strong></li>
<li>Click the <b>Application Shortcuts</b> tab</li>
<li>Click <b>Add</b></li>
<li>In the <b>Command</b> box, enter <code>/usr/bin/dmenu</code> and press <b>OK</b></li>
<li>On the next screen, enter a key combination to launch dmenu (I use LCTRL-SPACE)</li>
<li>Click <b>OK</b></li>
</ul>
<p>From now on, you can press your key combination and start typing the name of any executable application in your path for dmenu to run.  If you launch dmenu accidentally, just press ESC to close it.</p>
<p><a href="http://major.io/2012/12/27/launch-applications-quickly-with-dmenu-in-xfce/">Launch applications quickly with dmenu in XFCE</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://major.io/2012/12/27/launch-applications-quickly-with-dmenu-in-xfce/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reaching a new milestone and making some big changes</title>
		<link>http://major.io/2012/11/26/reaching-a-new-milestone-and-making-some-big-changes/</link>
		<comments>http://major.io/2012/11/26/reaching-a-new-milestone-and-making-some-big-changes/#comments</comments>
		<pubDate>Mon, 26 Nov 2012 15:00:04 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[openstack]]></category>
		<category><![CDATA[rackspace]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[slicehost]]></category>
		<category><![CDATA[supernova]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=3855</guid>
		<description><![CDATA[This is my 500th post on this blog! I&#8217;m really grateful for the constant comments, questions, and even the complaints (really!) that I receive about the topics discussed here throughout the years. The sole reason I keep this blog going is for the readers and I hope you&#8217;re able to get value out of it [...]<p><a href="http://major.io/2012/11/26/reaching-a-new-milestone-and-making-some-big-changes/">Reaching a new milestone and making some big changes</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
				<content:encoded><![CDATA[<p><strong>This is my 500th post on this blog!</strong>  I&#8217;m really grateful for the constant comments, questions, and even the complaints (really!) that I receive about the topics discussed here throughout the years.  The sole reason I keep this blog going is for the readers and I hope you&#8217;re able to get value out of it over time.  (If you don&#8217;t, be sure to let me know so I can make some changes.)</p>
<p>With that said, the best segue I can find for the rest of this post is this quote that I first heard when I was a kid:</p>
<blockquote><p>&#8220;I alone cannot change the world, but I can cast a stone across the waters to create many ripples.&#8221; &#8212; Mother Teresa</p></blockquote>
<p>I&#8217;ll reach my six year Rackspace anniversary in December and I&#8217;ve spent just shy of the last four years working on Rackspace&#8217;s cloud virtualization products.  It started shortly after the Slicehost acquisition and I was on teams that helped to expand Slicehost, created Cloud Servers, and most recently, launched a new Cloud Servers infrastructure powered by OpenStack.  Being able to participate in these big changes and work alongside some of the best technical folks (and friends) has been an amazing experience and I&#8217;m extremely lucky to be a small part of what we&#8217;ve made.</p>
<p>Walking away from that challenging work and those amazing people isn&#8217;t easy.  However, I&#8217;m going to give it a try.</p>
<p>I&#8217;ve accepted a position as Rackspace&#8217;s Chief Security Architect and I&#8217;m transitioning into that position over the next few weeks.  There are quite a few familiar faces in this part of the business at Rackspace and I have a strong team of knowledgeable security architects to lead.  It certainly won&#8217;t be an easy road to travel but I&#8217;m glad to have the opportunity to make a difference along with my team.  Also, my team is expanding and <a href="http://jobs.rackspace.com/job/San-Antonio-Senior-Security-Architect-US-Job-TX-78201/2223051/">we&#8217;re in need of some talented people</a>!</p>
<p>Some of the topics on this blog might change a little but please don&#8217;t worry: I&#8217;m still a Linux nerd at heart.</p>
<p>The other big change is that <a href="http://lists.fedoraproject.org/pipermail/devel-announce/2012-November/000993.html">I&#8217;ve been appointed</a> to the <a href="http://fedoraproject.org/wiki/Board">Fedora Board</a>.  I&#8217;ve been a long time Fedora user (since Core 2 in 2004) and I&#8217;m eager to continue some of the great work that has been done in the past.  I&#8217;m also a new Fedora Ambassador and I&#8217;ll be glad to help you get started or get more out of Fedora if you need a hand.</p>
<p>If you follow OpenStack closely and you enjoy using <a href="http://rackerhacker.github.com/supernova/">supernova</a>, I&#8217;ll still be maintaining that project since I still use OpenStack clouds regularly.</p>
<p><a href="http://major.io/2012/11/26/reaching-a-new-milestone-and-making-some-big-changes/">Reaching a new milestone and making some big changes</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://major.io/2012/11/26/reaching-a-new-milestone-and-making-some-big-changes/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Relocating a python virtual environment</title>
		<link>http://major.io/2012/11/25/relocating-a-python-virtual-environment/</link>
		<comments>http://major.io/2012/11/25/relocating-a-python-virtual-environment/#comments</comments>
		<pubDate>Sun, 25 Nov 2012 21:27:47 +0000</pubDate>
		<dc:creator>Major Hayden</dc:creator>
				<category><![CDATA[Blog Posts]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[openstack]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://rackerhacker.com/?p=3844</guid>
		<description><![CDATA[Python&#8217;s virtual environment capability is extremely handy for situations where you don&#8217;t want the required modules for a particular python project to get mixed up with your system-wide installed modules. If you work on large python projects (like OpenStack), you&#8217;ll find that the applications may require certain versions of python modules to operate properly. If [...]<p><a href="http://major.io/2012/11/25/relocating-a-python-virtual-environment/">Relocating a python virtual environment</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></description>
				<content:encoded><![CDATA[<p>Python&#8217;s <a href="http://pypi.python.org/pypi/virtualenv">virtual environment capability</a> is extremely handy for situations where you don&#8217;t want the required modules for a particular python project to get mixed up with your system-wide installed modules.  If you work on large python projects (like <a href="http://openstack.org/">OpenStack</a>), you&#8217;ll find that the applications may require certain versions of python modules to operate properly.  If these versions differ from the system-wide python modules you already have installed, you might get unexpected results when you try to run the unit tests.</p>
<p>If you build a virtual environment and inspect the files found within the <em>bin</em> directory of the virtual environment, you&#8217;ll find that the first line in the executable scripts is set to use the python version specific to that virtual environment.  Here&#8217;s an example from a virtual environment containing the OpenStack glance project:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/home/major/glance/.venv/bin/python</span>
<span style="color: #808080; font-style: italic;"># EASY-INSTALL-SCRIPT: 'glance==2013.1','glance-api'</span>
__requires__ <span style="color: #66cc66;">=</span> <span style="color: #483d8b;">'glance==2013.1'</span>
<span style="color: #ff7700;font-weight:bold;">import</span> pkg_resources
pkg_resources.<span style="color: black;">run_script</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'glance==2013.1'</span><span style="color: #66cc66;">,</span> <span style="color: #483d8b;">'glance-api'</span><span style="color: black;">&#41;</span></pre></td></tr></table></div>

<p>However, what if I wanted to take this virtual environment and place it somewhere else on the server where multiple people could use it?  The path in the first line of the scripts in <em>bin</em> will surely break.</p>
<p>The first option is to make the virtual environment relocatable.  This can produce unexpected results for some software projects, so be sure to test it out before trying to use it in a production environment.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html" style="font-family:monospace;">$ virtualenv --relocatable .venv</pre></td></tr></table></div>

<p>A quick check of the same python file now shows this:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/env python2.6</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">os</span><span style="color: #66cc66;">;</span> activate_this<span style="color: #66cc66;">=</span><span style="color: #dc143c;">os</span>.<span style="color: black;">path</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">os</span>.<span style="color: black;">path</span>.<span style="color: black;">dirname</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">os</span>.<span style="color: black;">path</span>.<span style="color: black;">realpath</span><span style="color: black;">&#40;</span>__file__<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #483d8b;">'activate_this.py'</span><span style="color: black;">&#41;</span><span style="color: #66cc66;">;</span> <span style="color: #008000;">execfile</span><span style="color: black;">&#40;</span>activate_this<span style="color: #66cc66;">,</span> <span style="color: #008000;">dict</span><span style="color: black;">&#40;</span>__file__<span style="color: #66cc66;">=</span>activate_this<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><span style="color: #66cc66;">;</span> <span style="color: #ff7700;font-weight:bold;">del</span> <span style="color: #dc143c;">os</span><span style="color: #66cc66;">,</span> activate_this
&nbsp;
<span style="color: #808080; font-style: italic;"># EASY-INSTALL-SCRIPT: 'glance==2013.1','glance-api'</span></pre></td></tr></table></div>

<p>This allows for the path to the activate_this.py script to be determined at runtime and allows you to move your virtual environment wherever you like.</p>
<p>In situations where one script within <em>bin</em> would import another script within <em>bin</em>, things can get a little dicey.  These are edge cases, of course, but you can get a similar effect by adjusting the path in the first line of each file within <em>bin</em> to the new location of the virtual environment.  If you move the virtual environment again, be sure to alter the paths again with <code>sed</code>.</p>
<p><a href="http://major.io/2012/11/25/relocating-a-python-virtual-environment/">Relocating a python virtual environment</a> is a post from: <a href="http://major.io">Major Hayden's</a> blog. 
<p>Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://major.io/2012/11/25/relocating-a-python-virtual-environment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
