<?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>Chris&#039; Blog &#187; Security</title>
	<atom:link href="http://www.cs278.org/blog/category/technology/security/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cs278.org/blog</link>
	<description>“A metal loving, web developing, open source contributor.”</description>
	<lastBuildDate>Sun, 03 Apr 2011 14:36:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>BAM Vulnerabilities</title>
		<link>http://www.cs278.org/blog/2008/12/04/bam-vulnerabilities/</link>
		<comments>http://www.cs278.org/blog/2008/12/04/bam-vulnerabilities/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 01:27:37 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[University]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[vulnerabilities]]></category>
		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">http://www.cs278.org/blog/?p=421</guid>
		<description><![CDATA[BAM is a company that provides services to Students Unions around the country primarily dealing with union websites. My Students&#8217; Guild signed up with them last year to provide our website, from the off I was quite opposed to the &#8230; <a href="http://www.cs278.org/blog/2008/12/04/bam-vulnerabilities/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sumarketing.co.uk/" rel="external">BAM</a> is a company that provides services to Students Unions around the country primarily dealing with union websites. My <a href="http://exeterguild.org/" rel="external">Students&#8217; Guild</a> signed up with them last year to provide our website, from the off I was quite opposed to the move anticipating it would turn into a complete joke which, naturally, it has. BAM uses their own proprietary in house developed content management system, from the outside it looks bloody awful and I am reliably informed that the administration side of things is worse. Last month a meeting was held to discuss the Guild website and what was wrong with it, the general consensus was &#8212; everything. Pushed on by this I decided to take a poke around and see if I could find any vulnerabilities, I didn&#8217;t have to look hard, it only took me 10 minutes to find the first. I found two more before I decided I would stop in case I scared myself senseless.</p>
<p><span id="more-421"></span></p>
<p>The vulnerabilities I found:</p>
<ol>
<li>Non-persistent XSS in search</li>
<li>Persistent XSS in user &#8220;My details&#8221; (only affected the currently logged in user)</li>
<li>Persistent XSS in news comments</li>
</ol>
<p>There was absolutely no input filtering at all on strings, which were just blindly echoed back to the client. I sent an e-mail to BAM regarding my finds and to be quite honest I was extremely surprised I got a reply within 24 hours. I proceeded the send more details once I knew I wasn&#8217;t conversing with the receptionist in their Swansea offices. I hoped they would have some clue with what they were doing after I pointed the issues out (misplaced confidence that was). They replied telling me the issues were fixed, I went ahead to test. Indeed they had fixed the problems using <a href="http://www.php.net/strip_tags" rel="external">strip_tags()</a> which is not the best solution to the problem, and it can also cause other problems. It also will not deal with attackers breaking out of attributes to add their own. I advised them they should be using <a href="http://www.php.net/htmlspecialchars" rel="external">htmlspecialchars()</a> to escape strings taken from user input, which they seem to have done now. Their reply to this e-mail seems to have vanished into some sort of Internet oblivion, I&#8217;ve asked them to resend it. <add>It has now been added below.</add></p>
<pre>From: Richard Moseley &lt;rm@[removed]&gt;
To: chris+sumarketing.co.uk@[removed]
Date: Thu, 13 Nov 2008 09:49:57 +0000

Hi Chris,

I would be interested in hearing what security vulnerabilities you
have found in the web platform, so that we can further investigate
these problems.

I look forward to hearing from you.

Many thanks

Richard Moseley
BAM
2nd Floor
No 8 Castle Square
Swansea
SA1 1DW

Tel: 0845 1300 667
Fax: 0845 1300 668

The information in this email and any attachments is confidential and
may be legally privileged. If you are not the intended recipient's),
you must not read, use, distribute or disseminate this email or the
information in it save to the intended recipient's) nor take any
action in reliance on it. If you receive this email or any attachments
in error, please notify us immediately by email or by telephoning 0845
1300 667 and then delete the same and any copies.

BAM Agency Ltd accepts no responsibility for any loss or damage
whatsoever arising in any way from receipt or use of this email or any
attachments.this email or any attachments.

&gt;
&gt;
&gt; From: hello@[removed] [mailto:hello@[removed]]
&gt; Sent: 13 November 2008 00:01
&gt; To: rh@[removed]
&gt; Subject: Comments From -
&gt; Importance: High
&gt;
&gt;
&gt; BAM
&gt; 2nd Floor
&gt; 8 Castle Square
&gt; Swansea
&gt; SA1 1DW
&gt;
&gt; Tel: 0845 1300667  Fax: 0845 1300668  Email: hello@[removed]
&gt;
&gt; |
&gt;
&gt; This message was sent via the contact form on www.sumarketing.co.uk
&gt;
&gt; Name: Chris Smith
&gt;
&gt; Company: -
&gt;
&gt; Telephone: -
&gt;
&gt; Email: chris+sumarketing.co.uk@[removed]
&gt;
&gt; Comments: I have found several security vulnerabilities in your
&gt; websites do you have a point of contact so I can report them
&gt; responsibly?
&gt;
&gt; How did they here about us: Other
&gt;
&gt; Click to visit the site
&gt;</pre>
<hr />
<pre>Date: Thu, 13 Nov 2008 20:59:46 +0000
From: Chris Smith &lt;chris@[removed]&gt;
To: Richard Moseley &lt;rm@[removed]&gt;

Richard Moseley wrote:
&gt; I would be interested in hearing what security vulnerabilities you have
&gt; found in the web platform, so that we can further investigate these
&gt; problems.

I have found three XSS issues, considering the ease it took me to find
them I expect there maybe more. The prime cause seems to be sloppy
programming by not sanitising user data before it is accessed. Two of
the XSS vulnerabilities are of the more serious persistent type and the
other is non-persistent. In order of severity:

* Non-persistent XSS in search:

- - Enter the search term:
&lt;script&gt;alert(document.cookie);&lt;/script&gt;
- - Click search

Result:
Users cookies are displayed in a message box.

Severity:
Minor would require social engineering to get people to enter a
malicious search term.

* Persistent XSS in user "My details":

- - Login
- - Set first name to:
&lt;script&gt;alert(document.cookie);&lt;/script&gt;
- - Click update
- - Logout
- - Login

Result:
Users cookies are displayed in a message box.

Severity:
Minor requires social engineering again to accomplish and it is per user.

Notes:
This is also a problem for "last name" and probably some of the other
fields.

* Persistent XSS in news comments:

- - Find a news article you can comment on
- - Enter the comment:
&lt;script&gt;alert(document.cookie);&lt;/script&gt;
- - Click post

Result:
Users cookies are displayed in a message box.

Severity:
Severe once posted the attack works against anyone viewing the site,
with some elaborate JavaScript it would be possible to trap data entry
to the username and password box capturing the input and sending it to a
remote server. Or if a user is logged in you could combine this attack
with the second issue I mentioned to silently modify the users "first
name" using an XmlHttpRequest to include another XSS which persisted on
all pages they visited on the site.

&gt;&gt; How did they here about us: Other

Spelling error "here" instead of "hear".</pre>
<hr />
<pre>From: Richard Moseley &lt;rm@[removed]&gt;
To: chris+sumarketing.co.uk@[removed]
Date: Thu, 13 Nov 2008 21:20:48 +0000

Hi Chris, thanks for bringing these items to our attention, i will get
someone onto these items in the morning, and advise when they have
been resolved.

Thanks

Richard Moseley
Web Developer
BAM
2nd Floor
No 8 Castle Square
Swansea
SA1 1DW

Tel: 0845 1300 667
Fax: 0845 1300 668

The information in this email and any attachments is confidential and
may be legally privileged. If you are not the intended recipient's),
you must not read, use, distribute or disseminate this email or the
information in it save to the intended recipient's) nor take any
action in reliance on it. If you receive this email or any attachments
in error, please notify us immediately by email or by telephoning 0845
1300 667 and then delete the same and any copies.

BAM Agency Ltd accepts no responsibility for any loss or damage
whatsoever arising in any way from receipt or use of this email or any
attachments.this email or any attachments.</pre>
<hr />
<pre>Date: Sat, 15 Nov 2008 14:51:40 +0000
From: Chris Smith &lt;chris@[removed]&gt;
To: Richard Moseley &lt;rm@[removed]&gt;

Richard Moseley wrote:
&gt;
&gt; Hi Chris, thank you for bringing these items to our attention. These
&gt; have now been resolved.

I notice your resolution seems to be to use strip_tags() to remove tags
while this is all well and good it doesn't address everything.
Ampersands are still inserted into the HTML un-escaped, this is not
going to cause an XSS attack but it causes invalid HTML to be outputted.
More worryingly if you have any code that inserts user input into a tag
attribute, which is not an entirely unreasonable scenario, strip_tags()
will do squat all to protect you. For example if you take a string from
the user and place it into the href attribute of an anchor and use
strip_tags() to protect yourself, I could send a string like this:

&quot; onmouseover=&quot;alert(document.cookie);&quot; dummy=&quot;

This assumes you have some code like

&lt;a href=&quot;/xyz/&lt;?php echo strip_tags($_GET['var']); ?&gt;/index.php&quot;&gt;

This would result in the following:

&lt;a href=&quot;/xyz/&quot; onmouseover=&quot;alert(document.cookie);&quot; dummy=&quot;/index.php&quot;&gt;

The solution is to use htmlspecialchars() which ensures double quotes,
ampersands and angle brackets are escaped. Meaning its impossible to
break out of your tags or inject new ones, one thing htmlspecialchars()
doesn't do by default is escape single quotes but you shouldn't be using
them in HTML.

It is also worth noting that strip_tags() is quite zealous with its
removal of 'tags' and will remove things like '&lt;43' which is not
unreasonable to occur in for example a statement with a mathematical
inequality.

I would suggest either just using htmlspecialchars() or using both
functions.

I must admit I am impressed by the quick turnaround on this even if the
fix is flawed.</pre>
<hr />
<pre>From: Richard Moseley &lt;rm@[removed]&gt;
To: chris+sumarketing.co.uk@[removed]
Date: Fri, 14 Nov 2008 08:22:13 +0000

Hi Chris, thank you for bringing these items to our attention. These
have now been resolved.

Kind Regards

Richard Moseley
Web Developer
BAM
2nd Floor
No 8 Castle Square
Swansea
SA1 1DW

Tel: 0845 1300 667
Fax: 0845 1300 668

The information in this email and any attachments is confidential and
may be legally privileged. If you are not the intended recipient's),
you must not read, use, distribute or disseminate this email or the
information in it save to the intended recipient's) nor take any
action in reliance on it. If you receive this email or any attachments
in error, please notify us immediately by email or by telephoning 0845
1300 667 and then delete the same and any copies.

BAM Agency Ltd accepts no responsibility for any loss or damage
whatsoever arising in any way from receipt or use of this email or any
attachments.this email or any attachments.</pre>
<hr />
<pre>From: Richard Moseley &lt;rm@[removed]&gt;
Date: 15 November 2008 16:42:18 GMT
To: Chris Smith &lt;chris@[removed]&gt;
Subject: Re: Comments From -

Hi Chris,

Thanks for the email, we are currently doing an audit on the XSS
vulnerabilities to ensure that it does not affect any of our other
code on the system, so as a quick resolution we used the
strip_tags() route as we knew that this did not effect any of the
existing coding, while investigating any potential impact of using
htmlspecialchars() on the system including the forums, and issues
caused as a consequence.

Once we have completed this assessment we will convert the system
over to using htmlspecialchars() instead.

Thanks for the update and the feedback you have provided on this
matter.

Kind Regards

Richard Moseley
BAM
2nd Floor
No 8 Castle Square
Swansea
SA1 1DW

Tel: 0845 1300 667
Fax: 0845 1300 668

The information in this email and any attachments is confidential
and may be legally privileged. If you are not the intended
recipient's), you must not read, use, distribute or disseminate this
email or the information in it save to the intended recipient's) nor
take any action in reliance on it. If you receive this email or any
attachments in error, please notify us immediately by email or by
telephoning 0845 1300 667 and then delete the same and any copies.

BAM Agency Ltd accepts no responsibility for any loss or damage
whatsoever arising in any way from receipt or use of this email or
any attachments.</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.cs278.org/blog/2008/12/04/bam-vulnerabilities/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Punching holes in Firewalls</title>
		<link>http://www.cs278.org/blog/2008/11/16/punching-holes-in-firewalls/</link>
		<comments>http://www.cs278.org/blog/2008/11/16/punching-holes-in-firewalls/#comments</comments>
		<pubDate>Sun, 16 Nov 2008 16:37:09 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://www.cs278.org/blog/?p=402</guid>
		<description><![CDATA[It is a lot easier than you think. OpenSSH, which can only be described as the best utility of all time, is quite a versatile tool one feature people use frequently is port forwarding. This allows you to open a &#8230; <a href="http://www.cs278.org/blog/2008/11/16/punching-holes-in-firewalls/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It is a lot easier than you think.</p>
<p><a href="http://www.openssh.com/" rel="external">OpenSSH</a>, which can only be described as the best utility of all time, is quite a versatile tool one feature people use frequently is port forwarding. This allows you to open a port on your computer that forwards the data over the SSH connection to the destination you specify, very useful when needing access to the an intranet web server when you don&#8217;t have a proper VPN set up for example. However, SSH can also do this in reverse! It opens a listening port up on the remote machine which then relays data to the destination you specify. For example you can SSH into a remote host and get SSH to open a port on that host which relays data back to the SSH port on the machine you are connection from, thereby allowing SSH access to a machine where it would normally be impossible.</p>
<p>A practical example:</p>
<pre class="terminal">chris@ktulu:~$ ssh sandman.cs278.org -R 2222:localhost:22</pre>
<p>This connects to the server <var>sandman.cs278.org</var> and opens port 2222 which forwards traffic to <var>localhost:22</var> (localhost is the machine I am connecting from). Once logged into the server I can do this:</p>
<pre class="terminal">chris@sandman:~$ ssh localhost -p 2222</pre>
<p>Which opens a connection back to the remote machine.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cs278.org/blog/2008/11/16/punching-holes-in-firewalls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blocking SSH Brute Force attempts using iptables</title>
		<link>http://www.cs278.org/blog/2008/01/12/blocking-ssh-brute-force-attempts-using-iptables/</link>
		<comments>http://www.cs278.org/blog/2008/01/12/blocking-ssh-brute-force-attempts-using-iptables/#comments</comments>
		<pubDate>Sat, 12 Jan 2008 15:53:33 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://www.cs278.org/blog/2008/01/12/blocking-ssh-brute-force-attempts-using-iptables/</guid>
		<description><![CDATA[After my recent break in I have looked into ways of protecting SSH and my server resources. I employ fail2ban on my main server, it has the resources to run such a programme &#8211; my Linksys NSLU2&#8242;s however do not. &#8230; <a href="http://www.cs278.org/blog/2008/01/12/blocking-ssh-brute-force-attempts-using-iptables/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After my recent <a href="http://www.cs278.org/blog/2008/01/10/confession/">break in</a> I have looked into ways of protecting SSH and my server resources. I employ <a href="http://www.fail2ban.org/" rel="external">fail2ban</a> on my main server, it has the resources to run such a programme &#8211; my Linksys NSLU2&#8242;s however do not. The solution is to use iptables to limit the number of connections any host can make in a given time frame. I wrote up a quick <a href="http://noc.cs278.org/wiki/HowTo:Kernel/Block_SSH_Scans">how to</a> on this over at my wiki. Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cs278.org/blog/2008/01/12/blocking-ssh-brute-force-attempts-using-iptables/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Disabled Akismet, comments held for moderation.</title>
		<link>http://www.cs278.org/blog/2007/09/25/disabled-akismet-comments-held-for-moderation/</link>
		<comments>http://www.cs278.org/blog/2007/09/25/disabled-akismet-comments-held-for-moderation/#comments</comments>
		<pubDate>Tue, 25 Sep 2007 23:42:55 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Site]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.cs278.org/blog/2007/09/25/disabled-akismet-comments-held-for-moderation/</guid>
		<description><![CDATA[I have made the decision to disable Akismet, after reading some hype about the new WordPress 2.3&#8242;s plugin version check API, which turned out to be negative but reveals something interesting with regards to Akismet. The following code is taken &#8230; <a href="http://www.cs278.org/blog/2007/09/25/disabled-akismet-comments-held-for-moderation/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have made the decision to disable Akismet, after reading some hype about the new WordPress 2.3&#8242;s plugin version check API, which turned out to be negative but reveals something interesting with regards to Akismet. The following code is taken from the official Akismet plugin for Wordpres.</p>
<pre>        $ignore = array( 'HTTP_COOKIE' );

        foreach ( $_SERVER as $key => $value )
                if ( !in_array( $key, $ignore ) )
                        $comment["$key"] = $value;

        $query_string = '';
        foreach ( $comment as $key => $data )
                $query_string .= $key . '=' . urlencode( stripslashes($data) ) . '&#038;';

        $response = akismet_http_post($query_string, $akismet_api_host, '/1.1/comment-check', $akismet_api_port);</pre>
<p>The bit that worries me is the use of <var>$_SERVER</var>, the only item from this array not sent is <var>HTTP_COOKIE</var>, fair enough. But why do you need to know the full paths to the files on my server and other server environment variables Akismet? I do not have a problem with sending data to Akismet, just not this data!</p>
<p><a href="http://groups.google.com/group/wp-hackers/browse_thread/thread/bdced7524fa79a18/2d4e69fb46a6a947" rel="external">Source</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cs278.org/blog/2007/09/25/disabled-akismet-comments-held-for-moderation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Remote Munin Nodes</title>
		<link>http://www.cs278.org/blog/2007/05/24/remote-munin-nodes/</link>
		<comments>http://www.cs278.org/blog/2007/05/24/remote-munin-nodes/#comments</comments>
		<pubDate>Thu, 24 May 2007 18:11:47 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Network]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.cs278.org/blog/2007/05/24/remote-munin-nodes/</guid>
		<description><![CDATA[My laptop and desktop are not always connected to the same network as my server and when this is the case its most likely I do not have control of the network or want the information passed over the internet &#8230; <a href="http://www.cs278.org/blog/2007/05/24/remote-munin-nodes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>My laptop and desktop are not always connected to the same network as my server and when this is the case its most likely I do not have control of the network or want the information passed over the internet in plain text. So this is my answer to remote munin nodes, using the <em>remote forwarding</em> feature of SSH.</p>
<ol>
<li>Install Munin Node:
<pre class="terminal">$ sudo aptitude install munin-node</pre>
</li>
<li>Create the upstart event file:
<pre class="terminal">$ sudo -e /etc/event.d/munin-tunnel</pre>
<p>Write in the following text:</p>
<pre>start on runlevel 2
start on runlevel 3

stop on runlevel 0
stop on runlevel 1
stop on runlevel 4
stop on runlevel 5
stop on runlevel 6

exec sudo -u munin ssh -N <var>munin-reporter</var>@<var>munin-server.example.com</var>
respawn</pre>
</li>
<li>Generate a SSH key for munin:
<p class="note">You do not want to set a password on the SSH key</p>
<pre class="terminal">
$ sudo sudo -H -u munin /bin/bash
$ mkdir /var/lib/munin/.ssh/
$ cd /var/lib/munin/.ssh
$ ssh-keygen -b 1024 -C munin@`hostname -f` -t rsa
$ exit</pre>
</li>
<li>Edit the SSH configuration for the munin user:
<pre class="terminal">$ sudo -e /var/lib/munin/.ssh/config
$ sudo chown munin:munin /var/lib/munin/.ssh/config</pre>
<p>Insert:</p>
<pre>Host <var>munin-server.example.com</var>
RemoteForward <var>some-port-number</var> localhost:4949</pre>
</li>
<li>Now you need to do some leg work on your server first create a user so that the SSH tunnel can be created, I used <var>munin-reporter</var>. Then you need to copy the munin users <em>public</em> key on your client into the ~<var>munin-reporter</var>/.ssh/authorized_keys file on your munin server. I will leave this as a user task, set up how you like on your server. I would recommend prepending the munin public key with the following in the authorized_keys file to restrict what the user can do.
<pre>no-pty,no-X11-forwarding,no-agent-forwarding</pre>
</li>
<li>Again, on your server, we need to tell munin where to get the data about the remote host from, using the snippet below:
<pre class="terminal">sudo nano /etc/munin/munin.conf</pre>
<pre>[<var>node.example.com</var>]
address 127.0.0.1
port <var>some-port-number</var>
use_node_name yes
</pre>
</li>
<li>Next we need to test the connection and verify the host signature so, that it doesn&#8217;t need to be done again.
<pre class="terminal">$ sudo sudo -u munin ssh munin-reporter@munin-server.example.com -v</pre>
<p>Check for any errors etc. if you spot a problem retrace your steps.
</li>
<li>All that is left is to start the upstart event and wait for some pretty graphs <img src='http://www.cs278.org/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />
<pre class="terminal">sudo start munin-tunnel</pre>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.cs278.org/blog/2007/05/24/remote-munin-nodes/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>WordPress Upgrade</title>
		<link>http://www.cs278.org/blog/2007/04/09/wordpress-upgrade-3/</link>
		<comments>http://www.cs278.org/blog/2007/04/09/wordpress-upgrade-3/#comments</comments>
		<pubDate>Mon, 09 Apr 2007 11:43:55 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Site]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.cs278.org/blog/2007/04/09/wordpress-upgrade-3/</guid>
		<description><![CDATA[Another release of WordPress another potentially PITA upgrade to complete, but it isn&#8217;t thanks too patch. I quickly ran a diff of the Subversion repository like so: $ svn diff http://svn.automattic.com/wordpress/tags/2.1.2 http://svn.automattic.com/wordpress/tags/2.1.3 Piped it to a file and applied it &#8230; <a href="http://www.cs278.org/blog/2007/04/09/wordpress-upgrade-3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Another release of WordPress another potentially PITA upgrade to complete, but it isn&#8217;t thanks too <a href="http://en.wikipedia.org/wiki/Patch_%28Unix%29" rel="external">patch</a>. I quickly ran a diff of the Subversion repository like so:</p>
<pre class="terminal">$ svn diff http://svn.automattic.com/wordpress/tags/2.1.2 http://svn.automattic.com/wordpress/tags/2.1.3</pre>
<p>Piped it to <a href="http://static.cs278.org/patches/wordpress/wordpress-2.1.2_2.1.3.diff">a file</a> and applied it to WordPress using patch, no drama no mess no effort. Just the way I like it <img src='http://www.cs278.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.cs278.org/blog/2007/04/09/wordpress-upgrade-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Upgrade</title>
		<link>http://www.cs278.org/blog/2007/03/03/wordpress-upgrade-2/</link>
		<comments>http://www.cs278.org/blog/2007/03/03/wordpress-upgrade-2/#comments</comments>
		<pubDate>Sat, 03 Mar 2007 21:15:43 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Site]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.cs278.org/blog/2007/03/03/wordpress-upgrade-2/</guid>
		<description><![CDATA[I have upgraded the version of Wordpres my blog runs, for me this is a pain in the ass due to custom modifications. So, this time I decided to use their subversion repository to create a patch and use that, &#8230; <a href="http://www.cs278.org/blog/2007/03/03/wordpress-upgrade-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have upgraded the version of <a href="http://www.wordpress.org/" rel="external">Wordpres</a> my blog runs, for me this is a pain in the ass due to custom modifications. So, this time I decided to use their subversion repository to create <a href="http://static.cs278.org/patches/wordpress/wordpress-2.1_2.1.2.diff">a patch</a> and use that, guess what it worked first time.</p>
<p>To patch:</p>
<pre class="terminal">$ patch -i ./wordpress-2.1_2.1.2.diff -d /path/to/wordpress -p0</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.cs278.org/blog/2007/03/03/wordpress-upgrade-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get SSH Key Fingerprint</title>
		<link>http://www.cs278.org/blog/2007/02/15/get-ssh-key-fingerprint/</link>
		<comments>http://www.cs278.org/blog/2007/02/15/get-ssh-key-fingerprint/#comments</comments>
		<pubDate>Thu, 15 Feb 2007 14:28:23 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.cs278.org/blog/2007/02/15/get-ssh-key-fingerprint/</guid>
		<description><![CDATA[I struggled a little to find out how to get the SSH fingerprint of an SSH key earlier so, I thought I would preserve how for ever more. The snippet below will return the SSH fingerprint for the machines public &#8230; <a href="http://www.cs278.org/blog/2007/02/15/get-ssh-key-fingerprint/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I struggled a little to find out how to get the SSH fingerprint of an SSH key earlier so, I thought I would preserve how for ever more. The snippet below will return the SSH fingerprint for the machines public RSA key (under Debian derived distributions at least.)</p>
<pre class="terminal">$ ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
2048 d6:59:bc:0b:18:ba:17:15:41:fc:d0:2a:60:f4:7e:e8 /etc/ssh/ssh_host_rsa_key.pub
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.cs278.org/blog/2007/02/15/get-ssh-key-fingerprint/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>HOWTO: Install Ubuntu 7.04 using debootstrap to an encrypted root partition</title>
		<link>http://www.cs278.org/blog/2007/02/04/howto-install-ubuntu-704-using-debootstrap-to-an-encrypted-root-partition/</link>
		<comments>http://www.cs278.org/blog/2007/02/04/howto-install-ubuntu-704-using-debootstrap-to-an-encrypted-root-partition/#comments</comments>
		<pubDate>Sun, 04 Feb 2007 02:21:54 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[eddie [Laptop]]]></category>

		<guid isPermaLink="false">http://www.cs278.org/blog/2007/02/04/howto-install-ubuntu-704-using-debootstrap-to-an-encrypted-root-partition/</guid>
		<description><![CDATA[I have updated the documentation and testing more thoroughly. <a href="http://www.cs278.org/blog/2007/02/04/howto-install-ubuntu-704-using-debootstrap-to-an-encrypted-root-partition/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I am in the process of writing a <a href="http://www.cs278.org/blog/ubuntu-configuration/feisty-debootstrap-encrypted-install/">guide</a> detailing how it is possible to install <a href="http://www.ubuntu.com/" rel="external">Ubuntu</a> 7.04 (yet to be released) on to a hard disc for a laptop or another computer without the use of any CDs or temporary partitions to hold to root partition while you encrypt what will be the root partition which most other guides demonstrate, this is fine if you want to keep the partition say for /home or something but my laptops hard drive is not big enough for that sort of segregation. I use <a href="http://packages.debian.org/debootstrap" rel="external">debootstrap</a> to install Ubuntu on the laptop hard disc mounted on another Ubuntu machine. My method has huge advantages, you don&#8217;t need to burn any CDs, its far quicker because it is more direct.</p>
<p>I will be tidying this up and possibly turning it into a automated script. I must admit this has not been easy no one guide has got it going it has taken multiple HOWTOs to inch every step of the way, but now I have it done I am happy, the gotchas were rather frustrating at time due to the difficulty of easily debugging the initial ram image when the machine is booting.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cs278.org/blog/2007/02/04/howto-install-ubuntu-704-using-debootstrap-to-an-encrypted-root-partition/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Securing Firefox DNS Lookups</title>
		<link>http://www.cs278.org/blog/2006/12/12/securing-firefox-dns-lookups/</link>
		<comments>http://www.cs278.org/blog/2006/12/12/securing-firefox-dns-lookups/#comments</comments>
		<pubDate>Tue, 12 Dec 2006 02:41:33 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.toonarmy.mine.nu/2006/12/12/securing-firefox-dns-lookups/</guid>
		<description><![CDATA[It always amazes me what nice features can be found in about:config, such as sending DNS requests to a SOCK&#8217;s proxy.]]></description>
			<content:encoded><![CDATA[<p>It always amazes me what nice features can be found in <code>about:config</code>, such as <a href="http://outflux.net/blog/archives/2006/12/07/paranoid-browsing-with-squid/trackback/" rel="external">sending DNS</a> requests to a SOCK&#8217;s proxy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cs278.org/blog/2006/12/12/securing-firefox-dns-lookups/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

