<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>Linux — Jürgen Kreileder</title>
	<atom:link href="/articles/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description>Software Engineer and Consultant</description>
	<lastBuildDate>Sat, 29 Oct 2016 01:51:03 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
<site xmlns="com-wordpress:feed-additions:1">5303222</site><image><title>Jürgen Kreileder</title><url>/jk-rss.jpg</url><link>/</link><width>144</width><height>114</height><description>Software Engineer and Consultant</description></image>	<item>
		<title>New-Style Last.fm Scrobbler for Ubuntu Oneiric</title>
		<link>/articles/new-style-last-fm-scrobbler-for-ubuntu-oneiric/</link>
					<comments>/articles/new-style-last-fm-scrobbler-for-ubuntu-oneiric/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Wed, 26 Oct 2011 19:55:24 +0000</pubDate>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[lastfm]]></category>
		<category><![CDATA[rhythmbox]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/?p=654</guid>

					<description><![CDATA[My last.fm plug-in for Rhythmbox is now available for Ubuntu 11.10 (Oneiric Ocelot). You can get the packages by running the following commands in a terminal: $ sudo add-apt-repository \ 'http://blog.blackdown.de/static/debian/rhythmbox/ main' $ wget https://blog.blackdown.de/static/gpg.asc -O - &#124; \ sudo apt-key add - $ sudo apt-get update $ sudo apt-get install rhythmbox rhythmbox-plugins lastfm Please<br />[&#8594; <a href="/articles/new-style-last-fm-scrobbler-for-ubuntu-oneiric/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>My <a href="/articles/lastfm-for-rhythmbox-new-style/">last.fm plug-in</a> for <a href="http://www.gnome.org/projects/rhythmbox/">Rhythmbox</a> is now available for <a href="http://www.ubuntu.com/">Ubuntu</a> 11.10 (Oneiric Ocelot).</p>
<p>You can get the packages by running the following commands in a terminal:</p>
<pre>$ sudo add-apt-repository \
    'http://blog.blackdown.de/static/debian/rhythmbox/ main'
$ wget https://blog.blackdown.de/static/gpg.asc -O - | \
    sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install rhythmbox rhythmbox-plugins lastfm</pre>
<p>Please remember to disable the old <em>Last.fm</em> plug-in before enabling mine (<em>New Style Last.fm Scrobbler</em>). Also note that my plug-in requires the <em>lastfm</em> client to work correctly.</p>
<p>If you are using <a href="http://unity.ubuntu.com/">Ubuntu Unity</a> and you are missing the last.fm client&#8217;s systray icon, then take a look at <a href="/articles/whitelisting-the-last-fm-tray-icon-in-ubuntu-unity/">Whitelisting the Last.fm Tray Icon in Ubuntu Unity</a>.</p>
<p>Read more about the plugin and get the source code at <a href="/articles/lastfm-for-rhythmbox-new-style/">Last.fm for Rhythmbox – New Style</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>/articles/new-style-last-fm-scrobbler-for-ubuntu-oneiric/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">654</post-id>	</item>
		<item>
		<title>New-Style Last.fm Scrobbler for Ubuntu Natty</title>
		<link>/articles/new-style-last-fm-scrobbler-for-ubuntu-natty/</link>
					<comments>/articles/new-style-last-fm-scrobbler-for-ubuntu-natty/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Wed, 04 May 2011 21:29:18 +0000</pubDate>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[lastfm]]></category>
		<category><![CDATA[rhythmbox]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/?p=531</guid>

					<description><![CDATA[My last.fm plug-in for Rhythmbox is now available for Ubuntu 11.04 (Natty Narwhal). You can get the packages by running the following commands in a terminal: $ sudo add-apt-repository \ 'http://blog.blackdown.de/static/debian/rhythmbox/ main' $ wget http://blog.blackdown.de/static/gpg.asc -O - &#124; \ sudo apt-key add - $ sudo aptitude update $ sudo aptitude install rhythmbox rhythmbox-plugins lastfm Please<br />[&#8594; <a href="/articles/new-style-last-fm-scrobbler-for-ubuntu-natty/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>My <a href="/2007/05/19/lastfm-for-rhythmbox-new-style/">last.fm plug-in</a> for <a href="http://www.gnome.org/projects/rhythmbox/">Rhythmbox</a> is now available for <a href="http://www.ubuntu.com/">Ubuntu</a> 11.04 (Natty Narwhal).</p>
<p>You can get the packages by running the following commands in a terminal: </p>
<pre>$ sudo add-apt-repository \
    'http://blog.blackdown.de/static/debian/rhythmbox/ main'
$ wget http://blog.blackdown.de/static/gpg.asc -O - | \
    sudo apt-key add -
$ sudo aptitude update
$ sudo aptitude install rhythmbox rhythmbox-plugins lastfm</pre>
<p>Please remember to disable the old <em>Last.fm</em> plug-in before enabling mine (<em>New Style Last.fm Scrobbler</em>). Also note that my plug-in requires the <em>lastfm</em> client to work correctly.</p>
<p>If you are using <a href="http://unity.ubuntu.com/">Ubuntu Unity</a> and you are missing the last.fm client&#8217;s systray icon, then take a look at <a href="/2011/05/03/whitelisting-the-last-fm-tray-icon-in-ubuntu-unity/">Whitelisting the Last.fm Tray Icon in Ubuntu Unity</a>.</p>
<p>Read more about the plugin and get the source code at <a href="/2007/05/19/lastfm-for-rhythmbox-new-style/">Last.fm for Rhythmbox – New Style</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>/articles/new-style-last-fm-scrobbler-for-ubuntu-natty/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">531</post-id>	</item>
		<item>
		<title>Whitelisting the Last.fm Tray Icon in Ubuntu Unity</title>
		<link>/articles/whitelisting-the-last-fm-tray-icon-in-ubuntu-unity/</link>
					<comments>/articles/whitelisting-the-last-fm-tray-icon-in-ubuntu-unity/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Mon, 02 May 2011 23:47:52 +0000</pubDate>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[gsettings]]></category>
		<category><![CDATA[lastfm]]></category>
		<category><![CDATA[rhythmbox]]></category>
		<category><![CDATA[systray]]></category>
		<category><![CDATA[ubuntu unity]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/?p=522</guid>

					<description><![CDATA[While the rhythmbox packages with my scrobbler plug-in for Ubuntu Natty are building, here&#8217;s a short tip on how to get the last.fm client to show up in the system tray with Ubuntu Unity. Run the following command in a terminal: $ gsettings set com.canonical.Unity.Panel systray-whitelist \ "$(gsettings get com.canonical.Unity.Panel systray-whitelist &#124; \ sed -e<br />[&#8594; <a href="/articles/whitelisting-the-last-fm-tray-icon-in-ubuntu-unity/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>While the rhythmbox packages with <a href="/2007/05/19/lastfm-for-rhythmbox-new-style/">my scrobbler plug-in</a> for Ubuntu Natty are building, here&#8217;s a short tip on how to get the <a href="http://www.last.fm/">last.fm</a> client to show up in the system tray with Ubuntu Unity.</p>
<p>Run the following command in a terminal:</p>
<pre>$ gsettings set com.canonical.Unity.Panel systray-whitelist \
    "$(gsettings get com.canonical.Unity.Panel systray-whitelist | \
       sed -e "s:\[:\['Last.fm' ,:")"</pre>
<p>After logging out and back in, the last.fm client will show up in the systray again.</p>
]]></content:encoded>
					
					<wfw:commentRss>/articles/whitelisting-the-last-fm-tray-icon-in-ubuntu-unity/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">522</post-id>	</item>
		<item>
		<title>New-Style Last.fm Scrobbler for Ubuntu Karmic</title>
		<link>/articles/new-style-lastfm-scrobbler-for-ubuntu-karmic/</link>
					<comments>/articles/new-style-lastfm-scrobbler-for-ubuntu-karmic/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Wed, 04 Nov 2009 21:43:52 +0000</pubDate>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[lastfm]]></category>
		<category><![CDATA[rhythmbox]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/?p=342</guid>

					<description><![CDATA[After much delay my last.fm plug-in for Rhythmbox is now available for Ubuntu 9.10 (Karmic Koala) too. You can get the package by adding deb http://blog.blackdown.de/static/debian/rhythmbox/ karmic main deb-src http://blog.blackdown.de/static/debian/rhythmbox/ karmic main to /etc/apt/sources.list. After adding those lines, do: $ sudo aptitude update $ sudo aptitude install rhythmbox The repositories are signed with my GPG<br />[&#8594; <a href="/articles/new-style-lastfm-scrobbler-for-ubuntu-karmic/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>After much delay my <a href="/2007/05/19/lastfm-for-rhythmbox-new-style/">last.fm plug-in</a> for <a href="http://www.gnome.org/projects/rhythmbox/">Rhythmbox</a> is now available for <a href="http://www.ubuntu.com/">Ubuntu</a> 9.10 (Karmic Koala) too.</p>
<p>You can get the package by adding</p>
<pre>deb http://blog.blackdown.de/static/debian/rhythmbox/ karmic main
deb-src http://blog.blackdown.de/static/debian/rhythmbox/ karmic main</pre>
<p>to <code>/etc/apt/sources.list</code>.<br />
After adding those lines, do:</p>
<pre>$ sudo aptitude update
$ sudo aptitude install rhythmbox</pre>
<p>The repositories are signed with my GPG <a href="/static/gpg.asc">key</a> which can be imported into your apt keyring with</p>
<pre>$ wget http://blog.blackdown.de/static/gpg.asc -O - | &#92;
    sudo apt-key add -</pre>
<p>Please remember to disable the old <em>Last.fm</em> plug-in before enabling mine (<em>New Style Last.fm Scrobbler</em>).  Also please note that my plug-in requires the <a href="http://apt.last.fm/"><code>lastfm</code></a> client to work correctly.</p>
<p>Read more about the plugin and get the source code at <a href="/2007/05/19/lastfm-for-rhythmbox-new-style/">Last.fm for Rhythmbox &#8211; New Style</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>/articles/new-style-lastfm-scrobbler-for-ubuntu-karmic/feed/</wfw:commentRss>
			<slash:comments>15</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">342</post-id>	</item>
		<item>
		<title>New-Style Last.fm Scrobbler for Ubuntu Jaunty</title>
		<link>/articles/new-style-last-fm-scrobbler-for-ubuntu-jaunty/</link>
					<comments>/articles/new-style-last-fm-scrobbler-for-ubuntu-jaunty/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Fri, 24 Apr 2009 16:00:44 +0000</pubDate>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[lastfm]]></category>
		<category><![CDATA[rhythmbox]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/?p=281</guid>

					<description><![CDATA[My last.fm plug-in for Rhythmbox is now available for Ubuntu 9.04 (Jaunty Jackalope) too. You can get the package by adding deb http://blog.blackdown.de/static/debian/rhythmbox/ jaunty main deb-src http://blog.blackdown.de/static/debian/rhythmbox/ jaunty main to /etc/apt/sources.list. After adding those lines, do: $ sudo aptitude update $ sudo aptitude install rhythmbox The repositories are signed with my GPG key which can<br />[&#8594; <a href="/articles/new-style-last-fm-scrobbler-for-ubuntu-jaunty/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>My <a href="/2007/05/19/lastfm-for-rhythmbox-new-style/">last.fm plug-in</a> for <a href="http://www.gnome.org/projects/rhythmbox/">Rhythmbox</a> is now available for <a href="http://www.ubuntu.com/">Ubuntu</a> 9.04 (Jaunty Jackalope) too.</p>
<p>You can get the package by adding</p>
<pre>deb http://blog.blackdown.de/static/debian/rhythmbox/ jaunty main
deb-src http://blog.blackdown.de/static/debian/rhythmbox/ jaunty main</pre>
<p>to <code>/etc/apt/sources.list</code>.<br />
After adding those lines, do:</p>
<pre>$ sudo aptitude update
$ sudo aptitude install rhythmbox</pre>
<p>The repositories are signed with my GPG <a href="/static/gpg.asc">key</a> which can be imported into your apt keyring with</p>
<pre>$ wget http://blog.blackdown.de/static/gpg.asc -O - | &#92;
    sudo apt-key add -</pre>
<p>Please remember to disable the old <em>Last.fm</em> plug-in before enabling mine (<em>New Style Last.fm Scrobbler</em>).  Also please note that my plug-in requires the <a href="http://apt.last.fm/"><code>lastfm</code></a> client to work correctly.</p>
<p>Read more about the plugin and get the source code at <a href="/2007/05/19/lastfm-for-rhythmbox-new-style/">Last.fm for Rhythmbox &#8211; New Style</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>/articles/new-style-last-fm-scrobbler-for-ubuntu-jaunty/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">281</post-id>	</item>
		<item>
		<title>Rhythmbox 0.11.6 With New-Style Last.fm Scrobbler for Ubuntu Hardy and Intrepid</title>
		<link>/articles/rhythmbox-0-11-6-with-new-style-last-fm-scrobbler-for-ubuntu-hardy-and-intrepid/</link>
					<comments>/articles/rhythmbox-0-11-6-with-new-style-last-fm-scrobbler-for-ubuntu-hardy-and-intrepid/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Wed, 15 Oct 2008 20:42:04 +0000</pubDate>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[lastfm]]></category>
		<category><![CDATA[rhythmbox]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/?p=57</guid>

					<description><![CDATA[Better late than never&#8230; I&#8217;ve finally updated my last.fm plug-in for Rhythmbox. i386, amd64, and lpia packages are available for Hardy Heron and Intrepid Ibex. Ubuntu Hardy user can get the package by adding deb http://blog.blackdown.de/static/debian/rhythmbox/ hardy main deb-src http://blog.blackdown.de/static/debian/rhythmbox/ hardy main to /etc/apt/sources.list. Ubuntu Intrepid users should use deb http://blog.blackdown.de/static/debian/rhythmbox/ intrepid main deb-src http://blog.blackdown.de/static/debian/rhythmbox/<br />[&#8594; <a href="/articles/rhythmbox-0-11-6-with-new-style-last-fm-scrobbler-for-ubuntu-hardy-and-intrepid/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>Better late than never&#8230; I&#8217;ve finally updated <a href="/2007/05/19/lastfm-for-rhythmbox-new-style/">my last.fm plug-in</a> for <a href="http://www.gnome.org/projects/rhythmbox/">Rhythmbox</a>.  i386, amd64, and lpia packages are available for <em>Hardy Heron</em> and <em>Intrepid Ibex</em>.</p>
<p><a href="http://www.ubuntu.com/">Ubuntu</a> <em>Hardy</em> user can get the package by adding</p>
<pre>deb http://blog.blackdown.de/static/debian/rhythmbox/ hardy main
deb-src http://blog.blackdown.de/static/debian/rhythmbox/ hardy main</pre>
<p>to <code>/etc/apt/sources.list</code>. Ubuntu <em>Intrepid</em> users should use</p>
<pre>deb http://blog.blackdown.de/static/debian/rhythmbox/ intrepid main
deb-src http://blog.blackdown.de/static/debian/rhythmbox/ intrepid main</pre>
<p>instead.<br />
After adding those lines, you can install the package with:</p>
<pre>$ aptitude update
$ aptitude install rhythmbox</pre>
<p>The repositories are signed with my GPG <a href="/static/gpg.asc">key</a> which can be imported into your apt keyring with</p>
<pre>$ wget http://blog.blackdown.de/static/gpg.asc -O - | &#92;
    sudo apt-key add -</pre>
<p>Please remember to disable the old <em>Last.fm</em> plug-in before enabling mine (<em>New Style Last.fm Scrobbler</em>).  Also please note that my plug-in requires the <a href="http://apt.last.fm/"><code>lastfm</code></a> client to work correctly.</p>
<p>Read more about the plugin and get the source code at <a href="/2007/05/19/lastfm-for-rhythmbox-new-style/">Last.fm for Rhythmbox &#8211; New Style</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>/articles/rhythmbox-0-11-6-with-new-style-last-fm-scrobbler-for-ubuntu-hardy-and-intrepid/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">57</post-id>	</item>
		<item>
		<title>Compiz Patches</title>
		<link>/articles/compiz-patches/</link>
					<comments>/articles/compiz-patches/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Thu, 15 Nov 2007 02:03:27 +0000</pubDate>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[compiz]]></category>
		<category><![CDATA[compiz fusion]]></category>
		<category><![CDATA[opencompositing]]></category>
		<category><![CDATA[patch]]></category>
		<category><![CDATA[smart placement]]></category>
		<category><![CDATA[window management]]></category>
		<category><![CDATA[wm]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2007/11/15/compiz-patches/</guid>

					<description><![CDATA[I planned to post an article about the state of Compiz Fusion today. It is not finished yet because instead of just complaining I actually fixed a couple of issues I have had with it: 040-decorator.patch This patch implements metacity-like raising and lowering of windows by pressing the left or middle mouse button on a<br />[&#8594; <a href="/articles/compiz-patches/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>I planned to post an article about the state of <a href="http://www.compiz-fusion.org/">Compiz Fusion</a> today. It is not finished yet because instead of just complaining I actually fixed a couple of issues I have had with it:</p>
<ul>
<li><strong><a href="/static/compiz/040-decorator.patch">040-decorator.patch</a></strong><br />
This patch implements metacity-like raising and lowering of windows by pressing the left or middle mouse button on a window&#8217;s decoration. Useful if you don&#8217;t use raise-on-click or auto-raise.<br />
References: <a href="https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/162728">Ubuntu bug</a>, <a href="http://bugs.opencompositing.org/show_bug.cgi?id=624">OpenCompositing bug</a></li>
<li><strong><a href="/static/compiz/041-shadow_offset.patch">041-shadow_offset.patch</a></strong><br />
This patches makes the shadow x/y offset settings work, they had no effect up to now. The patch also pushes the upper limit for the shadow radius to 48.0 because that is what the decorator can handle.<br />
References: <a href="https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/160618">Ubuntu bug</a>, <a href="http://bugs.opencompositing.org/show_bug.cgi?id=625">OpenCompositing bug</a></li>
<li><strong><a href="/static/compiz/042-smart_placement.patch">042-smart_placement.patch</a></strong><br />
This patch fixes the client size calculation for smart window placement. Without this fix smart placement insists on keeping about 17 pixels of free space on the right viewport edge.<br />
References: <a href="https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/162735">Ubuntu bug</a>, <a href="http://bugs.opencompositing.org/show_bug.cgi?id=622">OpenCompositing bug</a></li>
</ul>
<p>All patches are for Ubuntu&#8217;s current compiz packages for <em>Hardy Heron</em>.</p>
<p>As for my original plan, I will post the Compiz article on the weekend!</p>
]]></content:encoded>
					
					<wfw:commentRss>/articles/compiz-patches/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">56</post-id>	</item>
		<item>
		<title>Rhythmbox 0.11.0 For Ubuntu Feisty Fawn</title>
		<link>/articles/rhythmbox-0110-for-ubuntu-feisty-fawn/</link>
					<comments>/articles/rhythmbox-0110-for-ubuntu-feisty-fawn/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Thu, 31 May 2007 23:38:25 +0000</pubDate>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[lastfm]]></category>
		<category><![CDATA[rhythmbox]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2007/06/01/rhythmbox-0110-for-ubuntu-feisty-fawn/</guid>

					<description><![CDATA[I have set up APT repositories for my new-style last.fm Rhythmbox plug-in for Ubuntu &#8220;Feisty Fawn&#8221; and &#8220;Gutsy Gibbon&#8221;. A side effect is that there is a backport of Rhythmbox 0.11.0 for Feisty now. You can get it by adding deb http://blog.blackdown.de/static/debian/rhythmbox/ feisty main deb-src http://blog.blackdown.de/static/debian/rhythmbox/ feisty main to /etc/apt/sources.list. If you are using Ubuntu<br />[&#8594; <a href="/articles/rhythmbox-0110-for-ubuntu-feisty-fawn/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>I have set up <a href="http://en.wikipedia.org/wiki/Advanced_Packaging_Tool">APT</a> repositories for my <a href="/2007/05/19/lastfm-for-rhythmbox-new-style/">new-style last.fm Rhythmbox plug-in</a> for <a href="http://www.ubuntu.com/">Ubuntu</a> <em>&#8220;Feisty Fawn&#8221;</em> and <em>&#8220;Gutsy Gibbon&#8221;</em>.<br />
A side effect is that there is a backport of <a href="http://www.gnome.org/projects/rhythmbox/" rel="tag">Rhythmbox</a> 0.11.0 for <em>Feisty</em> now.</p>
<p>You can get it by adding</p>
<pre>deb http://blog.blackdown.de/static/debian/rhythmbox/ feisty main
deb-src http://blog.blackdown.de/static/debian/rhythmbox/ feisty main</pre>
<p>to <code>/etc/apt/sources.list</code>. If you are using Ubuntu <em>Gutsy</em>, just replace <code>feisty</code> with <code>gutsy</code> in these two lines.<br />
Then upgrade/install rhythmbox:</p>
<pre>$ aptitude update
$ aptitude install rhythmbox</pre>
<p>The repository is signed with my GPG <a href="/static/gpg.asc">key</a>. The key can be imported into your apt keyring with</p>
<pre>$ wget http://blog.blackdown.de/static/gpg.asc -O - | &#92;
    sudo apt-key add -</pre>
<p>If you are going to use the <a href="http://www.last.fm/">Last.fm</a> integration of Rhythmbox, make sure you only enable one of the two plug-ins! If you want to use the <a href="/2007/05/19/lastfm-for-rhythmbox-new-style/">new-style</a> plug-in, you need the <code>lastfm</code> client. The latest beta package for Ubuntu is available on the <a href="http://www.last.fm/group/Audioscrobbler+Beta/forum/30705">Last.fm beta forum</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>/articles/rhythmbox-0110-for-ubuntu-feisty-fawn/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">53</post-id>	</item>
		<item>
		<title>Rhythmbox Last.fm Scrobbler v3</title>
		<link>/articles/rhythmbox-lastfm-scrobbler-v3/</link>
					<comments>/articles/rhythmbox-lastfm-scrobbler-v3/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Tue, 22 May 2007 18:24:51 +0000</pubDate>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[lastfm]]></category>
		<category><![CDATA[rhythmbox]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2007/05/22/rhythmbox-lastfm-scrobbler-v3/</guid>

					<description><![CDATA[A new version of last.fm plug-in for Rhythmbox is available now. Changes since v2: Start the last.fm client in the system tray Try to start last.fm (beta client) before lastfm (stable client) Reduce bogus RESUME/PAUSE commands Miscellaneous small bug fixes Read more about the plugin and get the source code or an Ubuntu package at<br />[&#8594; <a href="/articles/rhythmbox-lastfm-scrobbler-v3/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>A new version of <a href="http://www.last.fm/">last.fm</a> plug-in for <a href="http://www.gnome.org/projects/rhythmbox" rel="tag">Rhythmbox</a> is available now. Changes since <a href="/2007/05/20/rhythmbox-lastfm-scrobbler-v2/">v2</a>:</p>
<ul>
<li>Start the last.fm client in the system tray</li>
<li>Try to start last.fm (<a href="http://www.last.fm/group/Audioscrobbler+Beta/forum/30705/_/278066">beta client</a>) before lastfm (<a href="http://www.last.fm/download/?showplatform=Linux">stable client</a>)</li>
<li>Reduce bogus RESUME/PAUSE commands</li>
<li>Miscellaneous small bug fixes</li>
</ul>
<p>Read more about the plugin and get the source code or an Ubuntu package at <a href="/2007/05/19/lastfm-for-rhythmbox-new-style/">Last.fm for Rhythmbox &#8211; New Style</a>.</p>
<p>If the Rhythmbox developers are interested, I&#8217;ll start to merge this new plug-in with the old one that is bundled with Rhythmbox.</p>
]]></content:encoded>
					
					<wfw:commentRss>/articles/rhythmbox-lastfm-scrobbler-v3/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">52</post-id>	</item>
		<item>
		<title>Rhythmbox Last.fm Scrobbler v2</title>
		<link>/articles/rhythmbox-lastfm-scrobbler-v2/</link>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Sun, 20 May 2007 20:54:14 +0000</pubDate>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[lastfm]]></category>
		<category><![CDATA[rhythmbox]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2007/05/20/rhythmbox-lastfm-scrobbler-v2/</guid>

					<description><![CDATA[I have updated my new style last.fm plug-in for Rhythmbox. The biggest change is that the last.fm client now gets started automatically. See the original article for more information and code!]]></description>
										<content:encoded><![CDATA[<p>I have updated my <em>new style</em> last.fm plug-in for <a href="http://www.gnome.org/projects/rhythmbox" rel="tag">Rhythmbox</a>. The biggest change is that the <a href="http://www.last.fm/download/?showplatform=Linux">last.fm client</a> now gets started automatically. See the <a href="/2007/05/19/lastfm-for-rhythmbox-new-style/">original article</a> for more information and code!</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">51</post-id>	</item>
		<item>
		<title>Last.fm for Rhythmbox &#8211; New Style</title>
		<link>/articles/lastfm-for-rhythmbox-new-style/</link>
					<comments>/articles/lastfm-for-rhythmbox-new-style/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Fri, 18 May 2007 22:48:42 +0000</pubDate>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[lastfm]]></category>
		<category><![CDATA[rhythmbox]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2007/05/19/lastfm-for-rhythmbox-new-style/</guid>

					<description><![CDATA[Just like a lot of other Rhythmbox users I like to scrobble my played tracks to last.fm. Unfortunately Rhythmbox provides no way to love a track. The last.fm plug-ins for Windows and OS X have been modified to scrobble through the last.fm client some time ago but the Rhythmbox plug-in still submits directly. That is<br />[&#8594; <a href="/articles/lastfm-for-rhythmbox-new-style/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>Just like a lot of other <a href="http://www.gnome.org/projects/rhythmbox" rel="tag">Rhythmbox</a> <a href="http://www.last.fm/group/Rhythmbox">users</a> I like to scrobble my played tracks to <a href="http://www.last.fm/">last.fm</a>. Unfortunately Rhythmbox provides no way to <em>love</em> a track. The last.fm plug-ins for Windows and OS X have been modified to scrobble through the last.fm <a href="http://www.last.fm/download/?showplatform=Linux">client</a> some time ago but the Rhythmbox plug-in still submits directly. That is until now&#8230;</p>
<p><img loading="lazy" src="/static/rhythmbox/lastfm.png" alt="Rhythmbox and lastfm" width="450" height="357"/></p>
<p>I have written a new last.fm plug-in for Rhythmbox today. Instead of scrobbling directly like the old one, it submits tracks via the <code>lastfm</code> client application. The client displays additional information about the currently playing song and you can <em>love</em> and tag the song with it.</p>
<p>The source code is available as a patch against <a href="http://git.gnome.org/browse/rhythmbox">Rhythmbox 2.90.1 (git snapshot 20120108)</a>: <a href="/static/rhythmbox/scrobbler-v3t.patch">scrobbler-v3t.patch</a><br />
You can apply this patch with:</p>
<pre>patch -NEp1 &lt; ~/scrobbler-v3t.patch</pre>
<p><a href="http://www.ubuntu.com/">Ubuntu</a> <em>Oneiric Ocelot</em> users can get precompiled packages from my APT repositories by running these commands in a terminal:</p>
<pre>$ sudo add-apt-repository \
    '/static/debian/rhythmbox/ main'
$ wget /static/gpg.asc -O - | \
    sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install rhythmbox rhythmbox-plugins lastfm</pre>
<p>To enable the new plug-in go to <code>Edit &raquo; Plugins</code>. Disable the &#8220;Last.fm&#8221; plug-in and enable the &#8220;New Style Last.fm Scrobbler&#8221;.<br />
<strong>If you enable this scrobbler plug-in, you have to disable the old Last.fm plug-in! Otherwise you will have two plug-ins which will both submit to last.fm at the same time. Only use one at a time!</strong></p>
<p><del>Note that this first version of the plug-in does not start the <code>lastfm</code> client automatically! It will scrobble only if you start the client manually. I will fix this in the next version.</del></p>
<p>Feedback, postive as well as negative, is very welcome.  If you want to report a bug, please include the output of &#8220;<code>rhythmbox -D rb-scrobbler-plugin</code>&#8221; and the tags of the song you wanted to scrobble.<br />
If you want to report a crash, providing a gdb backtrace would be nice.</p>
<p>You might also want to take a look at this <a href="http://www.last.fm/forum/21716/_/278649">thread</a> on the last.fm development forum.</p>
<p><em><strong>May 20th, 2007:</strong> v2 of the plug-in is available now. <code>lastfm</code> gets launched automatically now.</em><br />
<em><strong>May 22nd, 2007:</strong> v3 is available. The patch and the Ubuntu package have been updated: <a href="/2007/05/22/rhythmbox-lastfm-scrobbler-v3/">Changes since v2</a></em><br />
<em><strong>May 25th, 2007:</strong> v3a: Updated patch and deb for the new Ubuntu Gutsy version of Rhythmbox.</em><br />
<em><strong>May 29th, 2007:</strong> v3b: Updated patch and deb for the new Rhythmbox release.</em><br />
<em><strong>May 31st, 2007:</strong> Updated patch Ubuntu package.</em><br />
<em><strong>June 1st, 2007:</strong> Added APT <a href="/2007/06/01/rhythmbox-0110-for-ubuntu-feisty-fawn/">repositories</a> for Ubuntu Feisty and Gutsy.</em><br />
<em><strong>June 28th, 2007:</strong> v3c: Updated patch and debs for the new Rhythmbox release.</em><br />
<em><strong>August 16th, 2007:</strong> v3d: Updated patch and debs for Rhythmbox 0.11.2.</em><br />
<em><strong>November 14th, 2007:</strong> v3e: Updated patch and debs for Rhythmbox 0.11.3. Add Hardy repository.</em><br />
<em><strong>November 30th, 2007:</strong>Updated gusty and hardy builds. Include fixed Croatian po file from Franko Burolo.</em><br />
<em><strong>February 7th, 2008:</strong> v3f: Updated patch and debs for Rhythmbox 0.11.4. (Thanks to Iain Buchanan for notifying me of the missing patch!)</em><br />
<em><strong>May 31st, 2008:</strong> v3g: Updated patch to apply cleanly to Rhythmbox 0.11.5. (The debs for hardy have been at 0.11.5 for quite a while).</em><br />
<em><strong>October 15st, 2008:</strong> v3h: Updated patch to apply cleanly to Rhythmbox 0.11.6. <a href="/2008/10/15/rhythmbox-0-11-6-with-new-style-last-fm-scrobbler-for-ubuntu-hardy-and-intrepid/">Ubuntu packages</a> are available for i386, amd64, and lpia now.</em><br />
<em><strong>October 20st, 2008:</strong> v3i: Updated patch to apply cleanly to the real Rhythmbox 0.11.6 release.  v3h was for a later version from SVN.</em><br />
<em><strong>April 24th, 2009:</strong> v3j: Update patch to apply cleanly to Rhythmbox 0.12.0.  Provide debs for Ubuntu Jaunty.</em><br />
<em><strong>November 4th, 2009:</strong> v3k: Update patch to apply cleanly to Rhythmbox 0.12.5 and provide debs for Ubuntu Karmic.</em><br />
<em><strong>November 29th, 2009:</strong> v3l: Update patch to apply cleanly to Rhythmbox 0.12.6 and provide debs for Ubuntu Lucid too.</em><br />
<em><strong>April 25th, 2010:</strong> v3m: Update patch to apply cleanly to Rhythmbox 0.12.8.  Provide debs for Ubuntu Lucid.</em><br />
<em><strong>Jun 3rd, 2010:</strong> v3n: Update <a href="/static/rhythmbox/scrobbler-v3n.patch">patch</a> to apply cleanly to Rhythmbox 0.12.8git20100602.  Provide debs for Ubuntu Maverick Meerkat 10.10.</em><br />
<em><strong>Jun 13th, 2010:</strong> v3o: Update <a href="/static/rhythmbox/scrobbler-v3o.patch">patch</a> to apply cleanly to Rhythmbox 0.12.8git20100611.  Updated debs for Ubuntu Maverick Meerkat 10.10.</em><br />
<em><strong>October 10th, 2010:</strong> v3p: Update <a href="/static/rhythmbox/scrobbler-v3p.patch">patch</a> to apply cleanly to Rhythmbox 0.13.1.  Provide updated debs for Ubuntu Maverick Meerkat 10.10.</em><br />
<em><strong>April 4th, 2011:</strong> v3p: Update <a href="/static/rhythmbox/scrobbler-v3q.patch">patch</a> to apply cleanly to Rhythmbox 0.13.3.  Provide debs for Ubuntu Natty Narwhal 11.04.</em><br />
<em><strong>October 16th, 2011:</strong> v3r: Updated <a href="/static/rhythmbox/scrobbler-v3r.patch">patch</a> for new plug-in infrastructure in Rhythmbox 2.90.1.  Provide debs for Ubuntu Oneiric Ocelot 11.10.</em><br />
<em><strong>December 23rd, 2011:</strong> v3s: Updated <a href="/static/rhythmbox/scrobbler-v3s.patch">patch</a>.  Provide debs for Ubuntu Precise Pangolin 12.04.</em><br />
<em><strong>January 14th, 2012:</strong> v3t: Update <a href="/static/rhythmbox/scrobbler-v3t.patch">patch</a> and debs for Ubuntu Precise.</em></p>
]]></content:encoded>
					
					<wfw:commentRss>/articles/lastfm-for-rhythmbox-new-style/feed/</wfw:commentRss>
			<slash:comments>189</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">50</post-id>	</item>
		<item>
		<title>WordPress SSL Patch Update</title>
		<link>/articles/wordpress-ssl-patch-update/</link>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Fri, 12 Jan 2007 16:34:46 +0000</pubDate>
				<category><![CDATA[Config]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2007/01/12/wordpress-ssl-patch-update/</guid>

					<description><![CDATA[The recently released security update for WordPress introduced some changes that broke my HTTPS patch for it. I have updated the patch for WordPress 2.0.6 and 2.0.7-RC1 now: wp2-ssl.patch. Read the complete SSL setup guide here: Securing WordPress 2 Admin Access With SSL Regarding WordPress security, please note that there still is a possible exploit<br />[&#8594; <a href="/articles/wordpress-ssl-patch-update/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>The recently released security update for <a href="http://wordpress.org/" rel="tag">WordPress</a> introduced some changes that broke my HTTPS patch for it. I have updated the patch for WordPress 2.0.6 and 2.0.7-RC1 now: <a href="/static/wp/wp2-ssl.patch">wp2-ssl.patch</a>.</p>
<p>Read the complete SSL setup guide here: <a href="/2006/01/22/securing-wordpress-2-admin-access-with-ssl/">Securing WordPress 2 Admin Access With SSL</a></p>
<p>Regarding WordPress security, please note that there still is a possible exploit for 2.0.6: <a href="http://www.heise-security.co.uk/news/83575"> New WordPress exploit also affects version 2.0.6</a><br />
Make sure you use safe a PHP version and set <code>register_globals = off</code>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">48</post-id>	</item>
		<item>
		<title>Chrooting Recent MySQL Versions on Debian and Ubuntu</title>
		<link>/articles/chrooting-recent-mysql-versions-on-debian-and-ubuntu/</link>
					<comments>/articles/chrooting-recent-mysql-versions-on-debian-and-ubuntu/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Sat, 30 Dec 2006 15:58:22 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2006/12/30/47/</guid>

					<description><![CDATA[I&#8217;ve posted a recipe for chrooting MySQL on Debian sarge a while ago. These instructions no longer work out of the box for newer MySQL packages from Debian and Ubuntu. The main problem is that the startup script added a few extra checks and script invocations that don&#8217;t understand the chroot environment. So here&#8217;s an<br />[&#8594; <a href="/articles/chrooting-recent-mysql-versions-on-debian-and-ubuntu/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>I&#8217;ve posted a <a href="/2005/03/04/chrooting-mysql-on-debian/">recipe</a> for chrooting MySQL on Debian sarge a while ago. These instructions no longer work out of the box for newer MySQL packages from Debian and Ubuntu. The main problem is that the startup script added a few extra checks and script invocations that don&#8217;t understand the chroot environment. So here&#8217;s an updated plan:</p>
<ul>
<li>Prepare the chroot directory. It&#8217;s recommended to use an extra partition/filesystem for it. I will use <code>/srv/mysql</code> (which is an <a href ="http://sourceware.org/lvm2/">LVM2</a> partition with an ext3 filesystem on my system) for the rest of the text.</li>
<li>Stop MySQL:
<pre>/etc/init.d/mysql stop</pre>
</li>
<li>Copy the databases to new location:
<pre>mkdir -p /srv/mysql/var/lib
cp -a /var/lib/mysql /srv/mysql/var/lib</pre>
</li>
<li>Copy <a href="/static/mysql-chroot">this script</a> to <code>/etc/default/mysql-chroot</code></li>
<li>Edit <code>/etc/init.d/mysql</code>:
<ul>
<li>Source the <code><a href="/static/mysql-chroot">mysql-chroot</a></code> script somewhere at the top:
<pre>&hellip;
test -x /usr/sbin/mysqld || exit 0

<strong>. /etc/default/mysql-chroot</strong>

SELF=$(cd $(dirname $0); pwd -P)/$(basename $0)
&hellip;</pre>
</li>
<li>Fix the disk space check:
<pre style="overflow:scroll;width:93%;">
&hellip;
# check for diskspace shortage
datadir=`mysqld_get_param datadir`
if LC_ALL=C BLOCKSIZE= df --portability <strong>$CHROOT_DIR</strong>$datadir/. | tail -n 1 | awk &apos;{ exit ($4&gt;4096) }&apos;; then
  log_failure_msg &quot;$0: ERROR: The partition with $datadir is too full!&quot;
&hellip;</pre>
</li>
<li>Run <code>setup_chroot</code> right in the start section:
<pre>&hellip;
if mysqld_status check_alive nowarn; then
  echo &quot;...already running.&quot;
else
<strong>  setup_chroot</strong>
  /usr/bin/mysqld_safe &gt; /dev/null 2&gt;&amp;1 &amp;
&hellip;</pre>
</li>
<li>Somehow <code>/var/run/mysqld/mysqld.pid</code> disappears after each start.  We have to create it each time, otherwise the <code>stop</code> command won&#8217;t work properly:
<pre>&hellip;
if mysqld_status check_alive warn; then
  log_end_msg 0
<strong>  ln -sf $CHROOT_DIR/var/run/mysqld/mysqld.pid \
                 /var/run/mysqld</strong>
  # Now start mysqlcheck or whatever the admin wants.
  output=$(/etc/mysql/debian-start)
&hellip;</pre>
</li>
</ul>
</li>
<li>In <code>/etc/mysql/debian.cnf</code>, change the two <code>socket</code> lines to:
<pre>socket = /srv/mysql/var/run/mysqld/mysqld.sock</pre>
</li>
<li>In <code>/etc/mysql/my.cnf</code>:
<ul>
<li>Change the <code>socket</code> line in the <code>[client]</code> section to:
<pre>socket = /srv/mysql/var/run/mysqld/mysqld.sock</pre>
<p>Don&#8217;t change the <code>socket</code> lines in the other sections!</p>
</li>
<li>Add
<pre>chroot = /srv/mysql</pre>
<p> to the <code>[mysqld]</code> section.</p>
</li>
</ul>
</li>
<li>Prepend <code>/srv/mysql</code> to the log files listed in <code>/etc/logrotate.d/mysql-server</code></li>
<li>Make <code>/usr/bin/mysql_upgrade_shell</code> use the chrooted socket. <strong>Note: Currently these changes must be made each time mysql gets upgraded because upgrades override this file!</strong>
<pre style="overflow:scroll;width:93%;">&hellip;
&#45;&#45;password=*) password=`echo &quot;$arg&quot; | sed -e &apos;s/^[^=]*=//&apos;` ;;
<strong>&#45;&#45;socket=*) socket=`echo &quot;$arg&quot; | sed -e &apos;s/^[^=]*=//&apos;` ;;</strong>
&#45;&#45;ldata=*|&#45;&#45;data=*|&#45;&#45;datadir=*) DATADIR=`echo &quot;$arg&quot; | sed -e &apos;s/^[^=]*=//&apos;` ;;
&hellip;
fi
$bindir/mysql_fix_privilege_tables &#45;&#45;silent &#45;&#45;user=$user &#45;&#45;password=$password <strong>&#45;&#45;socket=$socket</strong> $args
exit 0
&hellip;
check_args=&quot;&#45;&#45;check-upgrade &#45;&#45;all-databases &#45;&#45;auto-repair &#45;&#45;user=$user &#45;&#45;password=$password <strong>&#45;&#45;socket=$socket</strong>&quot;
&hellip;
$bindir/mysql_fix_privilege_tables &#45;&#45;silent &#45;&#45;user=$user &#45;&#45;password=$password <strong>&#45;&#45;socket=$socket</strong> $args
&hellip;</pre>
</li>
<li>Start MySQL:
<pre>/etc/init.d/mysql start</pre>
</li>
<li>Check <code>/var/log/syslog</code> for errors ;-)</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>/articles/chrooting-recent-mysql-versions-on-debian-and-ubuntu/feed/</wfw:commentRss>
			<slash:comments>23</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">47</post-id>	</item>
		<item>
		<title>Sun Java Packages for Debian and Ubuntu</title>
		<link>/articles/sun-java-packages-for-debian-and-ubuntu/</link>
					<comments>/articles/sun-java-packages-for-debian-and-ubuntu/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Wed, 17 May 2006 19:42:31 +0000</pubDate>
				<category><![CDATA[Blackdown]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[sun]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2006/05/17/sun-java-packages-for-debian-and-ubuntu/</guid>

					<description><![CDATA[Sun now allows redistribution of Java by Linux and Open-Solaris distributions. As a result of this move, there are now packages of Sun&#8217;s Java for Debian and Ubuntu. The packaging code is largely based on the code we are using for Blackdown Java for some years. The code is available under the MIT license from<br />[&#8594; <a href="/articles/sun-java-packages-for-debian-and-ubuntu/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>Sun now <a href="http://www.sun.com/smi/Press/sunflash/2006-05/sunflash.20060516.4.xml">allows</a>  redistribution of Java by Linux and Open-Solaris distributions.</p>
<p>As a result of this move, there are now <a href="https://jdk-distros.dev.java.net/#use_it">packages</a> of Sun&#8217;s Java for Debian and Ubuntu.<br />
The packaging code is largely based on the code we are using for Blackdown Java for some years. The code is <a href="https://jdk-distros.dev.java.net/source/browse/jdk-distros/">available</a> under the <a href="http://www.opensource.org/licenses/mit-license.php">MIT license</a> from the <a href="https://jdk-distros.dev.java.net/">jdk-distros</a> project on <a href="http://java.net/">java.net</a>. (More info on Tom Marble&#8217;s <a href="http://blogs.sun.com/roller/page/tmarble#java_hot_and_spicy_for">blog</a>.)</p>
<p>I&#8217;m glad Sun finally <a href="http://weblogs.java.net/blog/calvinaustin/archive/2006/05/javaone_news_hi.html">opens</a> Java up a bit after years of <a href="http://weblogs.java.net/blog/calvinaustin/archive/2006/05/javaone_news_ja.html">restrictive</a> licensing.</p>
]]></content:encoded>
					
					<wfw:commentRss>/articles/sun-java-packages-for-debian-and-ubuntu/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">46</post-id>	</item>
		<item>
		<title>LVM Snapshots With Debian Sarge and Linux 2.6.16</title>
		<link>/articles/lvm-snapshots-with-debian-sarge-and-linux-2616/</link>
					<comments>/articles/lvm-snapshots-with-debian-sarge-and-linux-2616/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Sun, 09 Apr 2006 17:53:58 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux Kernel]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2006/04/09/lvm-snapshots-with-debian-sarge-and-linux-2616/</guid>

					<description><![CDATA[I have upgraded this server to kernel 2.6.16.2. The next backup cycle resulted in a minor disaster: The backup process deadlocked at removing the first LVM2 snapshot and the snapshot source volumes were blocking write accesses. A cleanup shutdown was impossible and I had to hard-reset the machine. After some searching I found out that<br />[&#8594; <a href="/articles/lvm-snapshots-with-debian-sarge-and-linux-2616/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>I have upgraded this server to kernel 2.6.16.2. The next backup cycle resulted in a minor disaster: The backup process deadlocked at removing the first <a href="http://sources.redhat.com/lvm2/">LVM2</a> snapshot and the snapshot source volumes were blocking write accesses. A cleanup shutdown was impossible and I had to hard-reset the machine.</p>
<p>After some searching I found out that you <a href="http://www.ussg.iu.edu/hypermail/linux/kernel/0601.2/2055.html">apparently</a> need lvm2 2.02.01 or later and devmapper 1.02.02 or later to successfully remove snapshot volumes now. Unfortunately neither of these versions is available for sarge from Debian or <a href="http://backports.org/">backports.org</a> yet, so I had to make my own backports.<br />
As it turned out (see below), it is also necessary to use 2.6.16.12 or to apply the patch from this <a href="http://lkml.org/lkml/2006/4/20/261">email</a> to older 2.6.16 versions in order to reliably remove snapshots.</p>
<p>If you are brave enough, you can get the backported packages by adding</p>
<pre>deb http://blog.blackdown.de/static/debian/lvm/ sarge main
deb-src http://blog.blackdown.de/static/debian/lvm/ sarge main</pre>
<p>to <code>/etc/apt/sources.list</code>.</p>
<p>The repository contains debs for devmapper, dlm, lvm2, and lvm-common. The <code>Release</code> files is signed with my GPG <a href="/static/gpg.asc">key</a>. If you have a recent <code>apt</code> version, you can authenticate the packages after importing the key with <code>apt-key</code>:</p>
<pre>wget http://blog.blackdown.de/static/gpg.asc -O - | &#92;
    sudo apt-key add -</pre>
<p><em><strong>April 15th, 2006:</strong> In about 40 backup cycles I&#8217;ve <a href="http://www.ussg.iu.edu/hypermail/linux/kernel/0604.1/1643.html">seen</a> three lockups with 2.6.16.2 now. Until snapshots get fixed in 2.6.16, I&#8217;d recommend to stay with 2.6.15. I&#8217;m using 2.6.15.3 again now.</em></p>
<p><em><strong>April 24th, 2006:</strong> Added note about &#8220;<a href="http://lkml.org/lkml/2006/4/20/261">dm snapshot: fix kcopyd destructor</a>&#8221; patch from Alasdair G Kergon. With this patch snapshots work fine for me again.</em></p>
<p><em><strong>May 2nd, 2006:</strong> Alasdair G Kergon&#8217;s patch has been included in 2.6.16.12.</em></p>
]]></content:encoded>
					
					<wfw:commentRss>/articles/lvm-snapshots-with-debian-sarge-and-linux-2616/feed/</wfw:commentRss>
			<slash:comments>13</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">45</post-id>	</item>
		<item>
		<title>Miscellaneous ALSA Patches</title>
		<link>/articles/miscellaneous-alsa-patches/</link>
					<comments>/articles/miscellaneous-alsa-patches/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Mon, 20 Mar 2006 20:05:01 +0000</pubDate>
				<category><![CDATA[Config]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2006/03/20/miscellaneous-alsa-dmix-patches/</guid>

					<description><![CDATA[I got a new PowerMac G5 Quad a couple of weeks ago. Nice machine, except for the weak graphics and non-existent sound support on Linux. The built-in sound card is completely unsupported at this time. As I did not feel like writing a driver for it, I plugged in an old USB sound device (Creative<br />[&#8594; <a href="/articles/miscellaneous-alsa-patches/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>I got a new PowerMac G5 Quad a couple of weeks ago. Nice machine, except for the weak graphics and non-existent sound support on Linux.</p>
<p>The built-in sound card is completely unsupported at this time. As I did not feel like writing a driver for it, I plugged in an old USB sound device (Creative Sound Blaster Audigy&nbsp;2&nbsp;NX). At first this did not work, I just got oopses. But with a small <a href="http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=aa657ca9245a06fa435e00332a13da1fce182abc">fix</a> (included in the kernel since 2.6.15.5) it started to work.</p>
<p>Next I tried to set up <a href="http://www.alsa-project.org/">ALSA</a>&#8216;s dmix plug-in with S16 which resulted in horrible crackling: The byte swapping code was broken.</p>
<p>Also, ALSA&#8217;s <code>softvol</code> plug-in (not strictly necessary but nice to have with GNOME&#8217;s volume control applet) didn&#8217;t work, it did not support any format available with snd-usb-audio on big-endian machines.</p>
<p>Here are the fixes for these two problems (against alsa-lib-1.0.11rc3):</p>
<ul>
<li><a href="/static/alsa/alsa-dmix-fix.patch">alsa-dmix-fix.patch</a></li>
<li><a href="/static/alsa/alsa-softvol.patch">alsa-softvol.patch</a></li>
</ul>
<p>If somebody is interested, here is the <a href="/static/alsa/USB-Audio.conf">USB-Audio.conf</a> I use with my Audigy&nbsp;2&nbsp;NX.</p>
<p>By the way: Is it normal that the <code>dmix</code> plug-in consumes 100% CPU?</p>
<p><em><strong>April 9th, 2006:</strong> The patches have been integrated into alsa-libs 1.0.11rc4, the 100% CPU issue is fixed in that version too.<br />
There&#8217;s also a ALSA driver for the chip in the PowerMac Quad now, see this <a href="http://lists.debian.org/debian-powerpc/2006/03/msg00470.html">mail</a> from Johannes Berg.</em></p>
]]></content:encoded>
					
					<wfw:commentRss>/articles/miscellaneous-alsa-patches/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">44</post-id>	</item>
		<item>
		<title>Securing WordPress 2 Admin Access With SSL</title>
		<link>/articles/securing-wordpress-2-admin-access-with-ssl/</link>
					<comments>/articles/securing-wordpress-2-admin-access-with-ssl/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Sun, 22 Jan 2006 20:34:42 +0000</pubDate>
				<category><![CDATA[Config]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2006/01/22/securing-wordpress-2-admin-access-with-ssl/</guid>

					<description><![CDATA[A few people have asked for an updated version of my Securing WordPress Admin Access With SSL guide. So here is an updated version for WordPress 2! The situation has not changed much since WordPress 1.5: WordPress 2.0 still does not support HTTPS access to the admin area when the rest of the blog is<br />[&#8594; <a href="/articles/securing-wordpress-2-admin-access-with-ssl/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>A few people have asked for an updated version of my <a href="/2005/05/18/securing-wordpress-admin-access-with-ssl/">Securing WordPress Admin Access With SSL</a> guide. So here is an updated version for <a href="http://wordpress.org/" rel="tag">WordPress</a> 2!</p>
<p>The situation has not changed much since WordPress 1.5: WordPress 2.0 still does not support HTTPS access to the admin area when the rest of the blog is served via normal HTTP and I still do not like logging in to my server over unencrypted connections, especially not when using public WLANs. Getting around this WordPress limitation requires quite a few steps:</p>
<h3>The Goal</h3>
<p>All communication involving passwords or authentication cookies should be done over HTTPS connections. <code>wp-login.php</code> and the <code>wp-admin</code> directory should only be accessible over HTTPS.<br />
Normal reading access, as well as comments, tracebacks, and pingbacks still should go over ordinary HTTP.</p>
<h3>The Plan</h3>
<ul>
<li>Add an HTTPS virtual host that forwards requests to the HTTP virtual host</li>
<li>Modify WordPress to send <em>secure</em> authentication cookies, so cookies never get sent over insecure connections accidentally</li>
<li>Require a valid certificate on HTTPS clients. That means to log in to WordPress you need both a valid certificate and a valid password.  If someone manages to get your password, he still can not login because he does not have a valid certificate.</li>
</ul>
<h3>The Implementation</h3>
<p>Note: This documentation assumes a <a href="http://www.debian.org/">Debian</a> sarge installation with <a href="http://httpd.apache.org/" rel="tag">Apache</a> 2. Some things, in particular Apache module related ones, will be different on other systems.<br />
The server used throughout the instructions is example.org/192.0.34.166. The server&#8217;s <code>DocumentRoot</code> is /blog and WordPress resides in /blog/wp. The value of WordPress&#8217; <code>home</code> option is &#8216;http://example.org&/#8217; and the value of its <code>site_url</code> option is &#8216;http://example.org/wp&#8217;.</p>
<ul>
<li>Prepare the SSL certificates:
<ul>
<li>Generate your own certificate authority (CA) if you don&#8217;t have one already (I&#8217;m using the makefile from <a href="http://sial.org/howto/openssl/ca/">OpenSSL Certificate Authority Setup</a> for managing mine) and import it into your browser.</li>
<li>Generate a certificate for the SSL server and certify it with your private CA.</li>
<li>Generate a certificate for your browser and certify it with your private CA. Most browsers expect a <abbr title="Public-Key Cryptography Standard">PKCS</abbr>#12 file, so generate one with
<pre>$ openssl pkcs12 -export -clcerts &#92;
    -in blogclient.cert &#92;
    -inkey blogclient.key &#92;
    -out blogclient.p12</pre>
<p>Then import <code>blogclient.p12</code> into your browser.</p>
</li>
</ul>
</li>
<li>Make WordPress SSL-ready:<br />
Apply this <a href="/static/wp/wp2-ssl.patch">patch</a> to the WordPress code. It makes the following changes:</p>
<ul>
<li>Use <em>secure</em> authentication cookies in <code>wp_setcookie()</code></li>
<li>Make <code>check_admin_referer()</code> work with HTTPS URLs</li>
<li>Use HTTPS URLs for notification mails</li>
<li>Use HTTPS URLS for redirects to <code>wp-login.php</code></li>
<li>Only allow XML-RPC logins from the local host (ie. the HTTPS proxy)</li>
<li>Add the <em>Mark-as-Spam</em> feature from trunk</li>
</ul>
<p>The patch is against <a href="http://subversion.tigris.org/">svn</a> version 3825 of WordPress (ie. WordPress 2.0.3), when you apply it to a newer version, you will likely get some harmless ‘<code>Hunk succeeded</code>’ message. If you are getting ‘<code>Hunk FAILED</code>’ message, just send me note and I&#8217;ll update the patch.</p>
</li>
<li>Enable the necessary Apache modules:
<ul>
<li>Install <a href="http://apache.webthing.com/mod_proxy_html/">mod_proxy_html</a>.  It will be used to replace absolute &#8216;http://example.org&/#8217; HTTP URLs in the WordPress output with &#8216;https://example.org&/#8217; HTTPS URLs:
<pre>$ aptitude install libapache2-mod-proxy-html</pre>
<p>The module gets enabled automatically after installation.</p>
</li>
<li>Enable mod_proxy and mod_ssl
<pre>$ a2enmod proxy
$ a2enmod ssl</pre>
<p>Debian provides sane default configurations for both modules. You might want to take a look at the configuration files (<code>ssl.conf</code> and <code>proxy.conf</code>) nevertheless.<br />
I have changed <code>SSLCipherSuite</code> to</p>
<pre style="overflow:scroll;width:93%;">TLSv1:SSLv3:!SSLv2:!aNULL:!eNULL:!NULL:!EXP:!DES:!MEDIUM:!LOW:@STRENGTH</pre>
<p>in <code>ssl.conf</code> in order to just allow TLS v1 and SSL v3 ciphers which provide strong encryption and authentication (see <a href="http://www.openssl.org/docs/apps/ciphers.html">ciphers(1)</a>).</p>
</li>
<li>If you are compressing WordPress output (that is if you enabled the <em>&#8216;WordPress should compress articles (gzip) if browsers ask for them&#8217;</em> option) then also enable mod_headers:
<pre>$ a2enmod headers</pre>
</li>
</ul>
</li>
<li>Configure Apache to listen on the HTTPS port
<pre>$ cat &gt; /etc/apache2/conf.d/ssl.conf &lt;&lt; EOF
&lt;IfModule mod_ssl.c&gt;
	Listen 443
&lt;/IfModule&gt;
EOF</pre>
</li>
<li>Modify the blog virtual host to limit access to <code>wp-login.php</code> and <code>wp-admin</code> to the local host. Also completely deny access to files which should never be accessed directly. Here is an example: <a href="/static/wp/10-wp2-example.org"><code>10-wp2-example.org</code></a></li>
<li>Now setup the HTTPS virtual server: <a href="/static/wp/20-wp2-example.org-ssl"><code>20-wp2-example.org-ssl</code></a><br />
If you are compressing WordPress output you have to enable the <code>RequestHeader</code> line.
</li>
<li>Enable the site and restart Apache
<pre>$ a2ensite 20-blog-ssl
$ /etc/init.d/apache2 restart</pre>
</li>
<li>Remove the old WP cookies from your browser</li>
<li>Test the new setup!</li>
</ul>
<p><em><strong>February 1st, 2006:</strong> <a href="/static/wp/wp2-ssl.patch">wp2-ssl.patch</a> updated for WordPress <a href="http://wordpress.org/development/2006/01/201-release/">2.0.1</a></em></p>
<p><em><strong>March 11st, 2006:</strong> WordPress <a href="http://wordpress.org/development/2006/03/security-202/">2.0.2</a> has been released, fixing some security issues. The HTTPS patch still applies fine to that version.</em></p>
<p><em><strong>March 19th, 2006:</strong> Updated <a href="/static/wp/wp2-ssl.patch">wp2-ssl.patch</a>. Changes: Fix bug in list-manipulation.php, use HTTPS for &#8216;Login&#8217; and &#8216;Register&#8217; links, backport &#8216;Mark-as-Spam&#8217; feature from trunk</em></p>
<p><em><strong>May 1st, 2006:</strong> WordPress <a href="http://wordpress.org/development/2006/06/wordpress-203/">2.0.3</a> has been released. Here is the updated <a href="/static/wp/wp2-ssl.patch">wp2-ssl.patch</a>.</em></p>
<p><em><strong>July 29th, 2006:</strong> WordPress <a href="http://wordpress.org/development/2006/07/wordpress-204/">2.0.4</a> has been released, fixing some security issues. Here is an updated version of the <a href="/static/wp/wp2-ssl.patch">wp2-ssl.patch</a>.</em></p>
<p><em><strong>January 12st, 2007:</strong> <a href="/static/wp/wp2-ssl.patch">wp2-ssl.patch</a> updated for 2.0.6 and 2.0.7-RC1</em></p>
<p><em><strong>January 15st, 2007:</strong> WordPress <a href="http://wordpress.org/development/2007/01/wordpress-207/">2.0.7</a> has been released. The patch still applies fine to that version.</em></p>
]]></content:encoded>
					
					<wfw:commentRss>/articles/securing-wordpress-2-admin-access-with-ssl/feed/</wfw:commentRss>
			<slash:comments>32</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">43</post-id>	</item>
		<item>
		<title>XOrg 6.9 evdev Fix for Big-Endian Machines</title>
		<link>/articles/xorg-69-evdev-fix-for-big-endian-machines/</link>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Wed, 18 Jan 2006 20:01:27 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2006/01/18/xorg-69-evdev-fix-for-big-endian-machines/</guid>

					<description><![CDATA[The new evdev driver in XOrg 6.9 is broken on big-endian machines (e.g. powerpc). Here&#8217;s a patch that fixes the problem.]]></description>
										<content:encoded><![CDATA[<p>The new <em>evdev</em> driver in XOrg 6.9 is broken on big-endian machines (e.g. powerpc). Here&#8217;s a <a href="/static/x11/evdev.patch">patch</a> that fixes the problem.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">42</post-id>	</item>
		<item>
		<title>Blackdown J2SE 1.4.2-03</title>
		<link>/articles/blackdown-j2se-142-03/</link>
					<comments>/articles/blackdown-j2se-142-03/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Fri, 02 Dec 2005 23:45:02 +0000</pubDate>
				<category><![CDATA[Blackdown]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/?p=40</guid>

					<description><![CDATA[I&#8217;ve released Blackdown&#8217;s J2SE 1.4.2-03 for Linux on x86 and AMD64/EM64T yesterday. The release fixes three security issues with the Reflection API (JRE May Allow Untrusted Applet to Elevate Privileges), so make sure you upgrade. The issue isn&#8217;t Blackdown-specific. Sun released an advisory too. Thanks to Matthias Klose, Debian packages for 1.4.2-03 are available too.<br />[&#8594; <a href="/articles/blackdown-j2se-142-03/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>I&#8217;ve released <a href="http://www.blackdown.org/">Blackdown&#8217;s</a> <a href="ftp://ftp.tux.org/pub/java/JDK-1.4.2/">J2SE 1.4.2-03</a> for Linux on x86 and AMD64/EM64T yesterday. The release fixes three security issues with the <a href="http://java.sun.com/j2se/1.4.2/docs/guide/reflection/index.html">Reflection</a> API (<a href="http://www.blackdown.org/java-linux/java2-status/security/Blackdown-SA-2005-03.txt">JRE May Allow Untrusted Applet to Elevate Privileges</a>), so make sure you upgrade.</p>
<p>The issue isn&#8217;t Blackdown-specific. Sun released an <a href="http://sunsolve.sun.com/search/document.do?assetkey=1-26-102003-1">advisory</a> too.</p>
<p>Thanks to Matthias Klose, Debian packages for 1.4.2-03 are available too.  Just add something like</p>
<pre>deb ftp://ftp.tux.org/java/debian/ sarge non-free</pre>
<p>to your <code>/etc/apt/sources.list</code>.</p>
<p>The <code>Release</code> files are signed with the <em><a href="http://www.blackdown.org/java-linux/java2-status/gpg.asc">Blackdown Java-Linux Package Signing Key</a></em>. If you have recent <code>apt</code> version you can use this key to authenticate our Debian packages. Just import the key with <code>apt-key</code>:</p>
<pre>$ wget http://www.blackdown.org/java-linux/java2-status/gpg.asc
$ apt-key add gpg.asc</pre>
]]></content:encoded>
					
					<wfw:commentRss>/articles/blackdown-j2se-142-03/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">40</post-id>	</item>
		<item>
		<title>Debian Testing Gets Security Support</title>
		<link>/articles/debian-testing-gets-security-support/</link>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Fri, 09 Sep 2005 23:41:09 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/09/10/debian-testing-gets-security-support/</guid>

					<description><![CDATA[The Debian Testing Security Team just announced the beginning of full security support for Debian&#8217;s &#8220;testing&#8221; distribution! The lack of security support was one of the main problems with &#8220;testing&#8221;. You had to pull security fixes from &#8220;unstable&#8221; or even build your own packages to keep it secure. I hope they have the manpower to<br />[&#8594; <a href="/articles/debian-testing-gets-security-support/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>The <a href="http://secure-testing-master.debian.net/">Debian Testing Security Team</a> just <a href="http://lists.debian.org/debian-devel-announce/2005/09/msg00006.html">announced</a> the beginning of full security support for <a href="http://www.debian.org/">Debian&#8217;s</a> <a href="http://www.debian.org/releases/testing/">&#8220;testing&#8221;</a> distribution!</p>
<p>The lack of security support was one of the main problems with &#8220;testing&#8221;. You had to pull security fixes from &#8220;unstable&#8221; or even build your own packages to keep it secure.</p>
<p>I hope they have the manpower to keep up with security issues. Debian&#8217;s main security team, which only provides updates for the &#8220;stable&#8221; distribution, had some problems over the last months.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">39</post-id>	</item>
		<item>
		<title>Debian Installer With Kernel 2.6.11</title>
		<link>/articles/debian-installer-with-kernel-2611/</link>
					<comments>/articles/debian-installer-with-kernel-2611/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Sun, 26 Jun 2005 09:43:04 +0000</pubDate>
				<category><![CDATA[Config]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux Kernel]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/06/26/debian-installer-with-kernel-2611/</guid>

					<description><![CDATA[As mentioned recently, Debian Sarge&#8217;s installer doesn&#8217;t work on my Dell Inspiron 9300. I like Debian but I think it&#8217;s a shame that the sarge installer was already outdated on the day of its release. The official sarge installer still uses a 2.4 kernel by default but includes a 2.6 kernel that can be used<br />[&#8594; <a href="/articles/debian-installer-with-kernel-2611/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>As <a href="/2005/06/06/the-sky-is-falling/">mentioned</a> recently, <a href="http://debian.org/">Debian</a> Sarge&#8217;s installer doesn&#8217;t work on my Dell Inspiron 9300. I like Debian but I think it&#8217;s a shame that the sarge installer was already outdated on the day of its release.</p>
<p>The official sarge installer still uses a 2.4 kernel by default but includes a 2.6 kernel that can be used by booting with &quot;<code>install26</code>&quot; or &quot;<code>expert26</code>&quot;.  But even that kernel, 2.6.8, is too old for the Inspiron 9300. It still doesn&#8217;t recognize the hard disk.</p>
<p>Ubuntu&#8217;s installer, which uses a 2.6.11 kernel, works fine on the machine. Although <a href="http://ubuntu.com/">Ubuntu</a> is a nice distribution, I like pure Debian better. Unfortunately I wasn&#8217;t able to find any 2.6.11 based Debian installer on the net, even a question on <a href="http://lists.debian.org/debian-boot/">debian-boot</a> yielded nothing.</p>
<p>Anyhow, I finally had the time to build one myself:<br />
<a href="/static/debian/debian-2.6.11-i386-businesscard.iso">debian-2.6.11-i386-businesscard.iso</a> (<a href="/static/debian/debian-2.6.11-i386-businesscard.iso.sign">GPG signature</a>)</p>
<p>The image is basically a sarge businesscard ISO with a 2.6.11 kernel from Debian testing instead of the original 2.6.8 kernel.</p>
<p>Unlike with Ubuntu, installation on the Inspiron 9300 still doesn&#8217;t work out of the box but with a few tricks I was able to install Debian sarge:</p>
<ul>
<li>Boot with <code>expert26</code></li>
<li>When the installer starts up, switch to the second console (Alt-F2) and enter these commands:
<pre>
~ # modprobe ide_generic
~ # modprobe ata_piix</pre>
<p>Without this the installer won&#8217;t find the CD-ROM.</p>
</li>
<li>If network configuration via DHCP fails, just retry &#8212; worked for me</li>
<li>When asked what version of Debian you would like to install, choose <em>stable</em>.  Installing <em>testing</em> or <em>unstable</em> directly doesn&#8217;t work.</li>
<li>It doesn&#8217;t matter which kernel you choose to install, we have to replace it with a 2.6.11 kernel later anyway</li>
<li>Just before the first reboot, that means right after the installer ejects the CD-ROM, switch back to console two. Now download and install the latest available Debian kernel. I&#8217;ve used <a href="/static/debian/kernel-image-2.6.11-1-686_2.6.11-7_i386.deb">2.6.11-1-686</a>:
<pre style="overflow:auto;width:100%;">~ # mount -t proc proc /target/proc
~ # chroot /target
sh-2.05b# cd /root
sh-2.05b# wget http://blog.blackdown.de/static/debian/kernel-image-2.6.11-1-686_2.6.11-7_i386.deb
sh-2.05b# dpkg -i kernel-image-2.6.11-1-686_2.6.11-7_i386.deb
&hellip;
sh-2.05b# exit
~ # umount /target/proc</pre>
</li>
<li>Reboot (using the kernel just installed) and complete the installation</li>
<li>Upgrade to <em>testing</em> or <em>unstable</em></li>
<li>Build a custom kernel (2.6.12 or newer). It&#8217;s probably a good idea to include some additional libata <a href="http://www.kernel.org/pub/linux/kernel/people/jgarzik/libata/">patches</a>. To get the DVD drive working you have to apply this <a href="/static/kernel/ata-atapi.patch">patch</a>.</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>/articles/debian-installer-with-kernel-2611/feed/</wfw:commentRss>
			<slash:comments>22</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">35</post-id>	</item>
		<item>
		<title>Debian Packages for J2SE 1.4.2-02</title>
		<link>/articles/debian-packages-for-j2se-142-02/</link>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Thu, 16 Jun 2005 04:15:40 +0000</pubDate>
				<category><![CDATA[Blackdown]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/06/16/debian-packages-for-j2se-142-02/</guid>

					<description><![CDATA[Thanks to Matthias Klose, Debian packages for Blackdown J2SE-1.4.2-02 are available now. Just add something like deb ftp://ftp.tux.org/java/debian/ sarge non-free to your /etc/apt/sources.list. Upgrading is recommended as 1.4.2-02 contains an important security fix.]]></description>
										<content:encoded><![CDATA[<p>Thanks to Matthias Klose, Debian packages for <a href="ftp://ftp.tux.org/java/JDK-1.4.2/">Blackdown J2SE-1.4.2-02</a> are available now.  Just add something like</p>
<pre>deb ftp://ftp.tux.org/java/debian/ sarge non-free</pre>
<p>to your <code>/etc/apt/sources.list</code>.</p>
<p>Upgrading is recommended as 1.4.2-02 contains an important security <a href="http://www.blackdown.org/java-linux/java2-status/security/Blackdown-SA-2005-02.txt">fix</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">34</post-id>	</item>
		<item>
		<title>Blackdown J2SE 1.4.2-02</title>
		<link>/articles/blackdown-j2se-142-02/</link>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Wed, 15 Jun 2005 04:17:41 +0000</pubDate>
				<category><![CDATA[Blackdown]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/06/15/blackdown-j2se-142-02/</guid>

					<description><![CDATA[Blackdown has released J2SE 1.4.2-02 for Linux on x86 and AMD64/EM64T yesterday. The release fixes a security issue (JRE May Allow Untrusted Applet to Elevate Privileges), so make sure you upgrade. Users of other Java implementations based on Sun&#8217;s code should check for updates too.]]></description>
										<content:encoded><![CDATA[<p>Blackdown has released <a href="ftp://ftp.tux.org/pub/java/JDK-1.4.2/">J2SE 1.4.2-02</a> for Linux on x86 and AMD64/EM64T yesterday. The release fixes a security issue (<a href="http://www.blackdown.org/java-linux/java2-status/security/Blackdown-SA-2005-02.txt">JRE May Allow Untrusted Applet to Elevate Privileges</a>), so make sure you upgrade.</p>
<p>Users of other Java implementations based on Sun&#8217;s code should check for updates too.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">33</post-id>	</item>
		<item>
		<title>The Sky Is Falling</title>
		<link>/articles/the-sky-is-falling/</link>
					<comments>/articles/the-sky-is-falling/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Mon, 06 Jun 2005 19:39:01 +0000</pubDate>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/06/06/the-sky-is-falling/</guid>

					<description><![CDATA[Debian Sarge is released (unfortunately the installer doesn&#8217;t like my Inspiron 9300) Apple is switching to Intel CPUs]]></description>
										<content:encoded><![CDATA[<ul>
<li>Debian Sarge is <a href="http://ftp.debian.org/dists/stable/Release">released</a> (unfortunately the installer doesn&#8217;t like my Inspiron 9300)</li>
<li>Apple is <a href="http://www.apple.com/pr/library/2005/jun/06intel.html">switching</a> to Intel CPUs</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>/articles/the-sky-is-falling/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">32</post-id>	</item>
		<item>
		<title>Shorewall Continued</title>
		<link>/articles/shorewall-continued/</link>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Sat, 28 May 2005 01:26:24 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/05/28/shorewall-continued/</guid>

					<description><![CDATA[Shorewall is still alive! After Shorewall creator Tom Eastep announced his departure from the project several people stepped up to continue development on Sourceforge. The website and the CVS repository already have been moved to the new site, the mailing lists are still hosted on the list.shorewall.net. Read more on the shorewall-devel list.]]></description>
										<content:encoded><![CDATA[<p><a href="http://shorewall.sf.net/" rel="tag">Shorewall</a> is still alive! After Shorewall creator Tom Eastep announced his <a href="http://lists.shorewall.net/pipermail/shorewall-users/2005-May/018444.html">departure</a> from the project several people stepped up to continue development on <a href="http://sf.net/">Sourceforge</a>. The website and the CVS repository already have been moved to the new site, the mailing lists are still hosted on the <a href="http://lists.shorewall.net/">list.shorewall.net</a>.</p>
<p>Read more on the <a href="http://lists.shorewall.net/pipermail/shorewall-devel/2005-May/001069.html">shorewall-devel</a> list.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">30</post-id>	</item>
		<item>
		<title>Shorewall in Limbo</title>
		<link>/articles/shorewall-in-limbo/</link>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Wed, 18 May 2005 12:25:11 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/05/18/shorewall-in-limbo/</guid>

					<description><![CDATA[Yesterday Shorewall creator Tom Eastep announced the end of Shorewall development and support. It is sad to hear that, Tom did a great job. Shorewall is one the best firewall tools available for Linux. I sincerely hope somebody will pick up the project and continue development. If I had the time I would do it<br />[&#8594; <a href="/articles/shorewall-in-limbo/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>Yesterday <a href="http://www.shorewall.net/" rel="tag">Shorewall</a> creator Tom Eastep <a href="http://lists.shorewall.net/pipermail/shorewall-users/2005-May/018444.html">announced</a> the end of Shorewall development and support.</p>
<p>It is sad to hear that, Tom did a great job. Shorewall is one the best firewall tools available for Linux. I sincerely hope somebody will pick up the project and continue development. If I had the time I would do it myself.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">29</post-id>	</item>
		<item>
		<title>Securing WordPress Admin Access With SSL</title>
		<link>/articles/securing-wordpress-admin-access-with-ssl/</link>
					<comments>/articles/securing-wordpress-admin-access-with-ssl/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Tue, 17 May 2005 23:11:24 +0000</pubDate>
				<category><![CDATA[Config]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/05/18/securing-wordpress-admin-access-with-ssl/</guid>

					<description><![CDATA[January 22nd, 2006: There&#8217;s an updated version of this guide for WordPress 2 now: Securing WordPress 2 Admin Access With SSL As one can guess from the look of this site, I&#8217;m using WordPress as my blog engine. At this time WordPress does not support HTTPS access to the admin area when the rest of<br />[&#8594; <a href="/articles/securing-wordpress-admin-access-with-ssl/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p><em><strong>January 22nd, 2006:</strong> There&#8217;s an updated version of this guide for WordPress 2 now: <a href="/2006/01/22/securing-wordpress-2-admin-access-with-ssl/">Securing WordPress 2 Admin Access With SSL</a></em></p>
<p>As one can guess from the look of this site, I&#8217;m using <a href="http://wordpress.org/" rel="tag">WordPress</a> as my blog engine. At this time WordPress does not support HTTPS access to the admin area when the rest of the blog is served via normal HTTP. This is a bit unfortunate. I do not like logging in to my server over unencrypted connections, especially not when using public WLANs. Getting around this WordPress limitation requires quite a few steps:</p>
<h3>The Goal</h3>
<p>All communication involving passwords or authentication cookies should be done over HTTPS connections. <code>wp-login.php</code> and the <code>wp-admin</code> directory should only be accessible over HTTPS.<br />
Normal reading access, as well as comments, tracebacks, and pingbacks still should go over ordinary HTTP.</p>
<h3>The Plan</h3>
<ul>
<li>Add an HTTPS virtual host that forwards requests to the HTTP virtual host</li>
<li>Modify WordPress to send <em>secure</em> authentication cookies, so cookies never get sent over insecure connections accidentally</li>
<li>Require a valid certificate on HTTPS clients. That means to log in to WordPress you need both a valid certificate and a valid password.  If someone manages to get your password, he still can not login because he does not have a valid certificate.</li>
</ul>
<h3>The Implementation</h3>
<p>Note: This documentation assumes a <a href="http://www.debian.org/">Debian</a> sarge installation with <a href="http://httpd.apache.org/" rel="tag">Apache</a> 2. Some things, in particular Apache module related ones, will be different on other systems.<br />
The server used throughout the instructions is example.org/192.0.34.166. The server&#8217;s <code>DocumentRoot</code> is /blog and WordPress resides in /blog/wp. The value of WordPress&#8217; <code>home</code> option is &#8216;http://example.org&/#8217; and the value of its <code>site_url</code> option is &#8216;http://example.org/wp&#8217;.</p>
<ul>
<li>Prepare the SSL certificates:
<ul>
<li>Generate your own certificate authority (CA) if you don&#8217;t have one already (I&#8217;m using the makefile from <a href="http://sial.org/howto/openssl/ca/">OpenSSL Certificate Authority Setup</a> for managing mine) and import it into your browser.</li>
<li>Generate a certificate for the SSL server and certify it with your private CA.</li>
<li>Generate a certificate for your browser and certify it with your private CA. Most browsers expect a <abbr title="Public-Key Cryptography Standard">PKCS</abbr>#12 file, so generate one with
<pre>$ openssl pkcs12 -export -clcerts &#92;
    -in blogclient.cert &#92;
    -inkey blogclient.key &#92;
    -out blogclient.p12</pre>
<p> Then import <code>blogclient.p12</code> into your browser.</p>
</li>
</ul>
</li>
<li>Make WordPress SSL-ready:<br />
Apply this <a href="/static/wp/wp-ssl.patch">patch</a> to the WordPress code. It makes the following changes:</p>
<ul>
<li>Use <em>secure</em> authentication cookies in <code>wp_setcookie()</code></li>
<li>Make <code>check_admin_referer()</code> working with HTTPS URLs</li>
<li>Disable login over XML-RPC</li>
</ul>
</li>
<li>Enable the necessary Apache modules:
<ul>
<li>Install <a href="http://apache.webthing.com/mod_proxy_html/">mod_proxy_html</a>.  It will be used to replace absolute &#8216;http://example.org&/#8217; HTTP URLs in the WordPress output with &#8216;https://example.org&/#8217; HTTPS URLs:
<pre>$ aptitude install libapache2-mod-proxy-html</pre>
<p>The module gets enabled automatically after installation.</p>
</li>
<li>Enable mod_proxy and mod_ssl
<pre>$ a2enmod proxy
$ a2enmod ssl</pre>
<p>Debian provides sane default configurations for both modules. You might want to take a look at the configuration files (<code>ssl.conf</code> and <code>proxy.conf</code>) nevertheless.</p>
</li>
<li>If you are compressing WordPress output (that is if you enabled the <em>&#8216;WordPress should compress articles (gzip) if browsers ask for them&#8217;</em> option) then also enable mod_headers:
<pre>$ a2enmod headers</pre>
</li>
</ul>
</li>
<li>Configure Apache to listen on the HTTPS port
<pre>$ cat &gt; /etc/apache2/conf.d/ssl.conf &lt;&lt; EOF
&lt;IfModule mod_ssl.c&gt;
	Listen 443
&lt;/IfModule&gt;
EOF</pre>
</li>
<li>Modify the blog virtual host to limit access to <code>wp-login.php</code> and <code>wp-admin</code> to the local host. Also completely deny access to files which should never be accessed directly. Here is an example: <a href="/static/wp/10-example.org"><code>10-example.org</code></a></li>
<li>Now setup the HTTPS virtual server: <a href="/static/wp/20-example.org-ssl"><code>20-example.org-ssl</code></a><br />
If you are compressing WordPress output you have to enable the <code>RequestHeader</code> line.
</li>
<li>Enable the site and restart Apache
<pre>$ a2ensite 20-blog-ssl
$ /etc/init.d/apache2 restart</pre>
</li>
<li>Remove the old WP cookies from your browser</li>
<li>Test the new setup!</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>/articles/securing-wordpress-admin-access-with-ssl/feed/</wfw:commentRss>
			<slash:comments>20</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">28</post-id>	</item>
		<item>
		<title>Fixing the ipt_recent Netfilter Module</title>
		<link>/articles/fixing-the-ipt_recent-netfilter-module/</link>
					<comments>/articles/fixing-the-ipt_recent-netfilter-module/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Mon, 09 May 2005 14:52:59 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux Kernel]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/05/09/fixing-the-ipt_recent-netfilter-module/</guid>

					<description><![CDATA[I have experienced some strange behavior with my ipt_recent netfilter rules after an uptime of about 25 days. The rules started to block much too early. After rebooting the machine I was able to reproduce the problem for five minutes. This clearly indicated a problem with jiffies (Linux initialized jiffies so that the first roll-over<br />[&#8594; <a href="/articles/fixing-the-ipt_recent-netfilter-module/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>I have experienced some strange behavior with my ipt_recent netfilter <a href="/2005/02/18/mitigating-ssh-brute-force-attacks-with-ipt_recent/">rules</a> after an uptime of about 25 days. The rules started to block much too early. After rebooting the machine I was able to reproduce the problem for five minutes. This clearly indicated a problem with jiffies (Linux initialized jiffies so that the first roll-over happens five minutes after booting).</p>
<p>A closer look at ipt_recent.c revealed that the time tests did not work like intended if one of the last hits was more than <code>LONG_MAX</code> jiffies ago or if the list of last hits contained empty slots and jiffies is greater than <code>LONG_MAX</code>.</p>
<p>To fix this, I replaced <em>jiffies</em> with <em>seconds since &#8217;00:00:00 1970-01-01 UTC&#8217;</em>. I have sent the <a href="/static/kernel/ipt_recent-fix.patch">patch</a> to linux-kernel and netfilter-devel. The patch also includes some 64-bit fixes.</p>
<p><em><strong>May 12th, 2005:</strong> The patch has been added to Linux 2.6.12-rc4-mm1</em></p>
<p><em><strong>September 8th, 2005:</strong> Please note that only the 64-bit parts of my patch have made it into 2.6.12. I&#8217;m working on an updated fix for the time comparison problems which will hopefully get accepted for 2.6.14 or later.</em></p>
<p><em><strong>September 12th, 2005:</strong> These issues have CAN numbers now: <a href="http://nvd.nist.gov/nvd.cfm?cvename=CAN-2005-2872">CAN-2005-2872</a> and <a href="http://nvd.nist.gov/nvd.cfm?cvename=CAN-2005-2873">CAN-2005-2873</a> (which supersede <a href="http://nvd.nist.gov/nvd.cfm?cvename=CAN-2005-2802">CAN-2005-2802</a>)</em></p>
<p><em><strong>July 10th, 2006:</strong> The jiffies issue is fixed in the vanilla kernel now.  Also note that 2.6.18 will contain a rewrite of ipt_recent.c.</em></p>
]]></content:encoded>
					
					<wfw:commentRss>/articles/fixing-the-ipt_recent-netfilter-module/feed/</wfw:commentRss>
			<slash:comments>50</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">27</post-id>	</item>
		<item>
		<title>2.6.12-rc-mm Lockups Fixed</title>
		<link>/articles/2612-rc-mm-lockups-fixed/</link>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Tue, 03 May 2005 01:48:15 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux Kernel]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/05/03/2612-rc-mm-lockups-fixed/</guid>

					<description><![CDATA[The lockups I have experienced with 2.6.12-rc-mm kernels have finally been fixed by this patch from Oleg Nesterov.]]></description>
										<content:encoded><![CDATA[<p>The <a href="/2005/04/19/lockups-with-2612-rc-mm-on-ppc64/">lockups</a> I have experienced with 2.6.12-rc-mm kernels have finally been fixed by this <a href="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0505.0/0005.html">patch</a> from Oleg Nesterov.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">26</post-id>	</item>
		<item>
		<title>Blackdown Java for PowerPC Status</title>
		<link>/articles/blackdown-java-for-powerpc-status/</link>
					<comments>/articles/blackdown-java-for-powerpc-status/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Wed, 20 Apr 2005 02:16:26 +0000</pubDate>
				<category><![CDATA[Blackdown]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/04/20/blackdown-java-for-powerpc-status/</guid>

					<description><![CDATA[The question whether Blackdown is working on a PowerPC JDK keeps resurfacing. Yes, we are working on porting HotSpot and J2SE 5 to both ppc and ppc64! There is no sponsor for this port, so nobody is working on it full-time currently. That means work is progressing slowly (but steadily), not much is working at<br />[&#8594; <a href="/articles/blackdown-java-for-powerpc-status/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>The question whether Blackdown is working on a PowerPC JDK keeps resurfacing.</p>
<p>Yes, we are working on porting HotSpot and J2SE 5 to both ppc and ppc64!<br />
There is no sponsor for this port, so nobody is working on it full-time currently. That means work is progressing slowly (but steadily), not much is working at this point.</p>
]]></content:encoded>
					
					<wfw:commentRss>/articles/blackdown-java-for-powerpc-status/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">25</post-id>	</item>
		<item>
		<title>Lockups with 2.6.12-rc-mm on PPC64</title>
		<link>/articles/lockups-with-2612-rc-mm-on-ppc64/</link>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Tue, 19 Apr 2005 01:30:42 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux Kernel]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/04/19/lockups-with-2612-rc-mm-on-ppc64/</guid>

					<description><![CDATA[After many cycles of compiling and testing ppc64 kernels, I finally found out what causes 2.6.12-rc-mm kernels to lock up my PowerMac G5 regularly: It&#8217;s the recent changes in kernel/timer.c. When I exclude the timer-* patches from the mm series everything works fine again. I have not found a bug in these patches yet but<br />[&#8594; <a href="/articles/lockups-with-2612-rc-mm-on-ppc64/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>After many cycles of compiling and testing ppc64 kernels, I finally found out what causes 2.6.12-rc-mm kernels to lock up my PowerMac G5 regularly: It&#8217;s the recent changes in <code>kernel/timer.c</code>.<br />
When I exclude the <code>timer-*</code> patches from the mm series everything works fine again.</p>
<p>I have not found a bug in these patches yet but I am pretty sure that it is no GCC bug.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">24</post-id>	</item>
		<item>
		<title>PowerMac G5 ALSA Driver</title>
		<link>/articles/powermac-g5-alsa-driver/</link>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Mon, 11 Apr 2005 18:03:19 +0000</pubDate>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux Kernel]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/04/11/powermac-g5-alsa-driver/</guid>

					<description><![CDATA[Thanks to this patch from Benjamin Herrenschmidt, there finally is sound support for the PowerMac G5! It even works with ppc64 kernels. Now if 2.6.12-rc kernels were just a tiny bit more stable on my G5&#8230;]]></description>
										<content:encoded><![CDATA[<p>Thanks to this <a href="http://ozlabs.org/pipermail/linuxppc64-dev/2005-April/003778.html">patch</a> from Benjamin Herrenschmidt, there finally is sound support for the PowerMac G5! It even works with ppc64 kernels.</p>
<p>Now if 2.6.12-rc kernels were just a tiny bit more stable on my G5&#8230;</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">23</post-id>	</item>
		<item>
		<title>PER_LINUX32 Fixes for Linux/ppc64</title>
		<link>/articles/per_linux32-fixes-for-linuxppc64/</link>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Sun, 03 Apr 2005 22:19:13 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux Kernel]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/04/04/per_linux32-fixes-for-linuxppc64/</guid>

					<description><![CDATA[I&#8217;ve tried to rebuild the latest Debian packages of Mozilla and Firefox with my jsarena pointer arithmetic fix on ppc32/ppc64 today. Rebuilding worked fine with older versions but this time it failed because the makefiles identified my G5 as an i386 box! The makefiles use uname -m to determine the CPU type, there&#8217;s no code<br />[&#8594; <a href="/articles/per_linux32-fixes-for-linuxppc64/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>I&#8217;ve tried to rebuild the latest Debian packages of Mozilla and Firefox with my jsarena pointer arithmetic <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=279273">fix</a> on ppc32/ppc64 today. Rebuilding worked fine with older versions but this time it failed because the makefiles identified my G5 as an i386 box! The makefiles use <code>uname -m</code> to determine the CPU type, there&#8217;s no code to handle &#8216;ppc64&#8217; and the default is &#8216;x86&#8217;.</p>
<p>As my old work-around (providing a <code>uname</code> command that returns &#8216;ppc&#8217;) didn&#8217;t work anymore, this forced me to look at the root cause of the problem.</p>
<p>I&#8217;ve finally found two issues with the <code>PER_LINUX32</code> personality:</p>
<ul>
<li><code>uname(2)</code> didn&#8217;t respect <code>PER_LINUX32</code></li>
<li>Child processes didn&#8217;t inherit <code>PER_LINUX32</code></li>
</ul>
<p>This <a href="/static/kernel/per_linux32-2.6.12-rc1-mm4.patch">patch</a> for 2.6.12-rc1-mm4 fixes both issues:</p>
<pre>$ uname -m
ppc64
$ linux32 uname -m
ppc
$ linux32 sh -c &quot;uname -m&quot;
ppc</pre>
<p>Without the patch all three commands return &#8216;ppc64&#8217;.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">22</post-id>	</item>
		<item>
		<title>Logitech MX1000 Configuration</title>
		<link>/articles/logitech-mx1000-configuration/</link>
					<comments>/articles/logitech-mx1000-configuration/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Sun, 03 Apr 2005 15:28:39 +0000</pubDate>
				<category><![CDATA[Config]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mozilla]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/04/03/logitech-mx1000-configuration/</guid>

					<description><![CDATA[I&#8217;ve had to buy a new mouse, this time I got me a Logitech MX1000 (my first Logitech mouse ever). The Microsoft IntelliMouse Explorer I&#8217;ve used on my G5 got broken, it lost about two out of ten of clicks on the left button. I&#8217;m not completely satisfied with the MX1000. It&#8217;s too heavy and<br />[&#8594; <a href="/articles/logitech-mx1000-configuration/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>I&#8217;ve had to buy a new mouse, this time I got me a Logitech MX1000 (my first Logitech mouse ever). The Microsoft IntelliMouse Explorer I&#8217;ve used on my G5 got broken, it lost about two out of ten of clicks on the left button.</p>
<p>I&#8217;m not completely satisfied with the MX1000. It&#8217;s too heavy and a bit too small for my hands. The notable exception is the <em>Forward</em> button, it&#8217;s too far away from my thumb. I&#8217;ve had the last problem with the IntelliMouse Explorer too. I still have a few IntelliMouse Optical on other machines, I really like that mouse. Perfect Size, good wheel, easily reachable side buttons.  The only drawback is the annoying big red light.</p>
<p>Anyhow, back to the MX1000. Only a few changes to my <a href="/2005/03/01/tilt-wheel-mouse/">configuration</a> for the IntelliMouse Explorer where needed to get it working. Here&#8217;s my new configuration:</p>
<ul>
<li><code>/etc/X11/XF86Config-4 </code> or <code>/etc/X11/xorg.conf</code>:
<pre>Section &quot;InputDevice&quot;
 Identifier &quot;MX1000&quot;
 Driver     &quot;mouse&quot;
 Option     &quot;CorePointer&quot;
 Option     &quot;Protocol&quot;        &quot;evdev&quot;
 Option     &quot;Dev Name&quot;        &quot;Logitech USB Receiver&quot;
 Option     &quot;Buttons&quot;         &quot;12&quot;
 Option     &quot;ZAxisMapping&quot;    &quot;11 12 10 9&quot;
 Option     &quot;Resolution&quot;      &quot;800&quot;
 Option     &quot;Emulate3Buttons&quot; &quot;false&quot;
EndSection</pre>
</li>
<li><code>/etc/X11/Xmodmap</code>:
<pre>! MX1000
pointer = 1 2 3 8 9 10 11 12 6 7 4 5</pre>
<p>This gets the buttons in right order: Scrolling the wheel generates 4 and 5, tilting the wheel 6 and 7.</p>
</li>
<li><code>~/.xbindkeysrc</code>:<br />
(You have to install <code>xbindkeys</code> and <code>xvkbd</code> for this; I&#8217;m starting <code>xbindkeys</code> in <code>~/.gnomerc</code>)</p>
<pre># Backward and Forward buttons
&quot;xvkbd -text &quot;&#92;[Alt_L]&#92;[Left]&quot;&quot;
  m:0x10 + b:8
&quot;xvkbd -text &quot;&#92;[Alt_L]&#92;[Right]&quot;&quot;
  m:0x10 + b:9

# &quot;Cruise Control&quot; disabled:
#&quot;xvkbd -text &quot;&#92;[Page_Up]&quot;&quot;
#  m:0x10 + b:11
#&quot;xvkbd -text &quot;&#92;[Page_Down]&quot;&quot;
#  m:0x10 + b:12

# &quot;Cruise Control&quot; enabled:
# Only use this if you have problems with Mozilla
#&quot;NoCommand&quot;
#  m:0x10 + b:11
#&quot;NoCommand&quot;
#  m:0x10 + b:12

# Application-Switch button
# A-Tab doesn't work
# Use it as another Forward for now
&quot;xvkbd -text &quot;&#92;[Alt_L]&#92;[Right]&quot;&quot;
  m:0x10 + b:10</pre>
<p>Using the <em>Application-Switch</em> button for switching windows in GNOME doesn&#8217;t work because it would require holding down the <em>Alt</em> key while pressing <em>Tab</em> several times, xvkbd can&#8217;t do that. I&#8217;m using the button as another <em>Forward</em> now, it&#8217;s easier to reach than the real <em>Forward</em> button.<br />
Defining actions for the <em>Cruise Control</em> buttons only makes sense when <em>Cruise Control</em> is disabled (you can disable it with the <a href="http://freshmeat.net/projects/logitech_applet/">Logitech Mouse Applet</a>). If it is disabled, the buttons generate 11 and 12.  When it is enabled, they generate a single button 11 or 12 event and then a series of button 4 or 5 events just like scrolling the wheel does.<br />
I have no idea why the mouse generates 11 or 12 before starting normal scrolling in <em>Cruise Control</em> mode. I&#8217;m mapping 11 and 12 to &#8220;NoCommand&#8221;, this eliminates the ButtonPress but not the ButtonRelease event. This seems to eliminate the negative effects of the extra button events in Mozilla. (Mozilla interprets the 11 and 12 events as normal left clicks, Firefox doesn&#8217;t have this issue. So if you&#8217;re using Firefox or if you don&#8217;t see the left-click problem with your Mozilla build, then don&#8217;t bind 11 and 12 to anything.)</p>
</li>
<li>At this point the <em>Backward</em> and <em>Forward</em> buttons should work in GNOME, KDE, and <a href="http://www.mozilla.org/products/" rel="tag">Mozilla</a>-based browsers. Horizontal scrolling should work in GNOME and KDE.<br />
Mozilla-based browser like <a href="http://www.mozilla.org/products/firefox/" rel="tag">Firefox</a> need two additional changes to get horizontal scrolling working with the tilt wheel: Open <code>about:config</code> and set</p>
<pre>mousewheel.horizscroll.withnokey.action = 0
mousewheel.horizscroll.withnokey.sysnumlines = true</pre>
</li>
</ul>
<p><em><strong>April 5th, 2005:</strong> Update: Don&#8217;t bind 11/12 to anything in Cruise Control mode by default (only needed if there are problems with Mozilla). Fixed the &quot;Cruise Control&quot; comments in ~/.xbindkeysrc.</em></p>
<p><em><strong>January 15th, 2006:</strong> Xorg 6.9 and later come with a different <em>evdev</em> driver. I&#8217;ve made an <a href="/2006/01/15/updated-logitech-mx1000-configuration/">updated version</a> of this guide now.</em></p>
]]></content:encoded>
					
					<wfw:commentRss>/articles/logitech-mx1000-configuration/feed/</wfw:commentRss>
			<slash:comments>24</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">21</post-id>	</item>
		<item>
		<title>New Blackdown Security Advisory</title>
		<link>/articles/new-blackdown-security-advisory/</link>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Thu, 24 Mar 2005 03:00:55 +0000</pubDate>
				<category><![CDATA[Blackdown]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/03/24/new-blackdown-security-advisory/</guid>

					<description><![CDATA[Jouko Pynnönen has discovered an argument injection vulnerability in Java Web Start. I&#8217;ve just created a new Blackdown security advisory about this problem. Note that our current releases are not affected.]]></description>
										<content:encoded><![CDATA[<p>Jouko Pynnönen has <a href="http://www.derkeiler.com/Mailing-Lists/Full-Disclosure/2005-03/0650.html">discovered</a> an argument injection vulnerability in Java Web Start. I&#8217;ve just created a new Blackdown <a href="http://www.blackdown.org/java-linux/java2-status/security/Blackdown-SA-2005-01.txt">security advisory</a> about this problem. Note that our current releases are not affected.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">20</post-id>	</item>
		<item>
		<title>cyrus_sasl patch for Exim 4</title>
		<link>/articles/cyrus_sasl-patch-for-exim-4/</link>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Tue, 22 Mar 2005 00:11:32 +0000</pubDate>
				<category><![CDATA[Config]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Network]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/03/22/cyrus_sasl-patch-for-exim-4/</guid>

					<description><![CDATA[The Exim 4 source code supports authentication with SASL since version 4.43. Debian started enabling this feature in exim4_4.50-2. After I&#8217;ve had upgraded to that version and replaced my saslauthd authenticators with brand-new cyrus_sasl authenticators, I&#8217;ve noticed that auth.log got flooded with entries like &#8216;exim4: OTP unavailable because can't read/write key database /etc/opiekeys: No such<br />[&#8594; <a href="/articles/cyrus_sasl-patch-for-exim-4/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>The <a href="http://www.exim.org/">Exim 4</a> source code supports authentication with <a href="http://asg.web.cmu.edu/sasl/"><acronym title="Simple Authentication and Security Layer">SASL</acronym></a> since version 4.43. <a href="http://www.debian.org/">Debian</a> started enabling this feature in exim4_4.50-2. After I&#8217;ve had upgraded to that version and replaced my <em>saslauthd</em> authenticators with brand-new <em>cyrus_sasl</em> authenticators, I&#8217;ve noticed that <code>auth.log</code> got flooded with entries like &#8216;<code>exim4: OTP unavailable because can't read/write key database /etc/opiekeys: No such file or directory</code>.&#8217;</p>
<p>My exim configuration uses three different <em>cyrus_sasl</em> authenticators and each exim invocation resulted in three of these <abbr title="One-Time-Password">OTP</abbr> warnings because exim calls <code>sasl_listmech()</code> for each configured authenticator. It doesn&#8217;t specify a limiting <code>mech_list</code>, that means SASL will test which of all installed mechs actually can be used for authentication. Debian&#8217;s SASL package includes <code>libotp.so</code>, so it also tries to use OTP which is not configured on my system.</p>
<p>There are two ways to get rid off the warnings:</p>
<ul>
<li>Remove <code>/usr/lib/sasl2/libotp.*</code>. You&#8217;ll have to do this after each upgrade of the libsasl2-modules package.</li>
<li>Rebuild exim with this <a href="/static/exim/71_cyrus_sasl.dpatch">patch</a>. The patch specifies a limiting <code>mech_list</code> option for SASL.  This limits <code>sasl_listmech()</code> to the mechs used in the exim configuration. Other mechs won&#8217;t be tried anymore.</li>
</ul>
<p><em><strong>May 3rd, 2005:</strong> A slightly modified version of the patch has been integrated into Exim CVS and will be included in the next Debian release of exim4 (see Debian bug <a href="http://bugs.debian.org/299743">#299743</a>)</em></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">19</post-id>	</item>
		<item>
		<title>32-bit compat patch for inotify-0.21</title>
		<link>/articles/32-bit-compat-patch-for-inotify-021/</link>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Thu, 17 Mar 2005 04:13:08 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux Kernel]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/03/17/32-bit-compat-patch-for-inotify-021/</guid>

					<description><![CDATA[The inotify API has been changed, watches are now added via the file&#8217;s fd. That makes the 32-bit compat patch pretty trivial: inotify-0.21-compat.patch March 18th, 2005: The patch has been integrated into inotify 0.21-2]]></description>
										<content:encoded><![CDATA[<p>The <a href="http://www.kernel.org/pub/linux/kernel/people/rml/inotify/">inotify</a> API has been changed, watches are now added via the file&#8217;s fd. That makes the 32-bit compat patch pretty trivial:<br />
<a href="/static/kernel/inotify-0.21-compat.patch">inotify-0.21-compat.patch</a></p>
<p><em><strong>March 18th, 2005:</strong> The patch has been integrated into inotify 0.21-2</em></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">18</post-id>	</item>
		<item>
		<title>evdev compat patch now in -mm kernel</title>
		<link>/articles/evdev-compat-patch-now-in-mm-kernel/</link>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Wed, 16 Mar 2005 19:34:39 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux Kernel]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/03/16/evdev-compat-patch-now-in-mm-kernel/</guid>

					<description><![CDATA[My 32-bit compat patch for evdev has been integrated into Linux 2.6.11-mm3.]]></description>
										<content:encoded><![CDATA[<p>My <a href="/2005/02/28/32-bit-compat-evdev-driver/">32-bit compat patch</a> for evdev has been integrated into Linux 2.6.11-mm3.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">17</post-id>	</item>
		<item>
		<title>Linux on POWER Contest</title>
		<link>/articles/linux-on-power-contest/</link>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Tue, 15 Mar 2005 21:36:56 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/03/15/linux-on-power-contest/</guid>

					<description><![CDATA[IBM has launched another PowerPC porting contest. You can win Segways, G5s, and cash. I think the list of requested tier 2 and 3 ports is a bit ridiculous, it includes: Shell scripts which need no porting at all Stuff that already works on ppc32 and ppc64 Windows applications which will be quite hard to<br />[&#8594; <a href="/articles/linux-on-power-contest/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>IBM has launched another <a href="http://www.linuxonpower.com/">PowerPC porting contest</a>. You can win Segways, G5s, and cash. I think the <a href="http://www.linuxonpower.com/challenges.php">list</a> of requested tier 2 and 3 <a href="http://www.linuxonpower.com/challenges.php">ports</a> is a bit ridiculous, it includes:</p>
<ul>
<li>Shell scripts which need no porting at all</li>
<li>Stuff that already works on ppc32 and ppc64</li>
<li>Windows applications which will be quite hard to port</li>
<li><a href="http://www.winehq.com/">Wine</a>, which won&#8217;t work without an x86 emulator (AFAIK some Windows programs already work with Wine and <a href="http://fabrice.bellard.free.fr/qemu/">qemu</a>)</li>
</ul>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">16</post-id>	</item>
		<item>
		<title>Adobe Reader 7 for Linux</title>
		<link>/articles/adobe-reader-7-for-linux/</link>
					<comments>/articles/adobe-reader-7-for-linux/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Mon, 14 Mar 2005 20:40:49 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/03/14/adobe-reader-7-for-linux/</guid>

					<description><![CDATA[Adobe just released Acrobat Reader 7 for Linux (download here). Unfortunately it&#8217;s still x86-only &#8212; no AMD64 or PowerPC versions are available. Linux users on non-x86 architectures maybe should send them feature requests and bug reports until they extend their support to those architectures.]]></description>
										<content:encoded><![CDATA[<p>Adobe just released  <a href="http://www.adobe.com/products/acrobat/readermain.html">Acrobat Reader 7</a> for Linux (download <a href="ftp://ftp.adobe.com/pub/adobe/reader/unix/7x/7.0/enu/">here</a>). </p>
<p>Unfortunately it&#8217;s still x86-only &#8212; no AMD64 or PowerPC versions are available. Linux users on non-x86 architectures maybe should send them <a href="http://www.adobe.com/support/feature.html">feature requests</a> and <a href="http://www.adobe.com/misc/bugreport.html">bug reports</a> until they extend their support to those architectures.</p>
]]></content:encoded>
					
					<wfw:commentRss>/articles/adobe-reader-7-for-linux/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">15</post-id>	</item>
		<item>
		<title>Updated MySQL Chroot Script</title>
		<link>/articles/updated-mysql-chroot-script/</link>
					<comments>/articles/updated-mysql-chroot-script/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Sun, 13 Mar 2005 03:12:17 +0000</pubDate>
				<category><![CDATA[Config]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/03/13/updated-mysql-chroot-script/</guid>

					<description><![CDATA[Debian&#8217;s latest MySQL packages are compiled with --with-mysqld-ldflags = -all-static. That means libc.so.6 is linked statically now. But glibc&#8217;s getpwnam and getpwuid implementations still need the shared libraries. The needed libraries must be copied into the chroot because mysqld calls those functions after calling chroot. I&#8217;ve updated the mysql-chroot script accordingly. (The rest of the<br />[&#8594; <a href="/articles/updated-mysql-chroot-script/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p><a href="http://www.debian.org/">Debian&#8217;s</a> latest <a href="http://dev.mysql.com/">MySQL</a> packages are compiled with <code>--with-mysqld-ldflags = -all-static</code>.</p>
<p>That means <code>libc.so.6</code> is linked statically now. But glibc&#8217;s <code>getpwnam</code> and <code>getpwuid</code> implementations still need the shared libraries. The needed libraries must be copied into the chroot because <code>mysqld</code> calls those functions after calling <code>chroot</code>. I&#8217;ve updated the <code><a href="/static/mysql-chroot">mysql-chroot</a></code> script accordingly.<br />
<em>(The rest of the chroot setup procedure still works as described in <a href="/2005/03/04/chrooting-mysql-on-debian/">Chrooting MySQL on Debian</a>.)</em></p>
<p>By the way, I&#8217;ve filed a wishlist bug at Debian&#8217;s BTS (<a href="http://bugs.debian.org/299265">#299265</a>). <code>mysqld</code> should do all <code>/etc/passwd</code> lookups before calling <code>chroot</code>. That way chrooting would work without <code>$CHROOT/etc/passwd</code> and with copying any libraries into the chroot. That&#8217;s how Apache and Bind 9 do it.</p>
<p><em><strong>March 17th, 2005:</strong> Debian has removed the <code>-all-static</code> flag again. I&#8217;m leaving the additional bits in the chroot script however, just in case the maintainers decide to add the flag again.</em></p>
]]></content:encoded>
					
					<wfw:commentRss>/articles/updated-mysql-chroot-script/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">12</post-id>	</item>
		<item>
		<title>32-bit compat ioctl for inotify</title>
		<link>/articles/32-bit-compat-ioctl-for-inotify/</link>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Fri, 11 Mar 2005 01:30:08 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux Kernel]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/03/11/32-bit-compat-ioctl-for-inotify/</guid>

					<description><![CDATA[I&#8217;ve just installed the file alteration monitor Gamin. Its inotify support didn&#8217;t work because inotify didn&#8217;t provide the required compat ioctl(2) for my mixed 32/64-bit system. Here&#8217;s a patch that adds the missing ioctl(2) to 2.6.11-mm2: inotify-compat-2.6.11-mm2.patch March 17th, 2005: Updated patch available here]]></description>
										<content:encoded><![CDATA[<p>I&#8217;ve just installed the file alteration monitor <a href="http://www.gnome.org/~veillard/gamin/">Gamin</a>. Its <a href="http://www.kernel.org/pub/linux/kernel/people/rml/inotify/">inotify</a> support didn&#8217;t work because inotify didn&#8217;t provide the required compat <code>ioctl(2)</code> for my mixed 32/64-bit system.<br />
Here&#8217;s a patch that adds the missing <code>ioctl(2)</code> to 2.6.11-mm2: <br /><a href="/static/kernel/inotify-compat-2.6.11-mm2.patch">inotify-compat-2.6.11-mm2.patch</a></p>
<p><em><strong>March 17th, 2005:</strong> Updated patch available <a href="/2005/03/17/32-bit-compat-patch-for-inotify-021/">here</a></em></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">10</post-id>	</item>
		<item>
		<title>PHP Error Logging to syslog from a chroot</title>
		<link>/articles/php-error-logging-to-syslog-from-a-chroot/</link>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Mon, 07 Mar 2005 06:48:34 +0000</pubDate>
				<category><![CDATA[Config]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/03/08/php-error-logging-to-syslog-from-a-chroot/</guid>

					<description><![CDATA[Here&#8217;s a little trick to log PHP errors to syslog from an apache chroot. Instead of creating a $CHROOT/dev/log socket in the chroot and configuring syslog to listen on that, just define a bogus virtual host that logs to syslog. &#60;VirtualHost 127.0.0.2:80&#62; ServerName JustForOpeningSyslog Redirect permanent / http://127.0.0.1/ ErrorLog syslog &#60;/VirtualHost&#62; Now apache calls openlog(3)<br />[&#8594; <a href="/articles/php-error-logging-to-syslog-from-a-chroot/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>Here&#8217;s a little trick to log <a href="http://www.php.net/">PHP</a> errors to syslog from an <a href="http://httpd.apache.org/">apache</a> chroot. Instead of creating a <code>$CHROOT/dev/log</code> socket in the chroot and configuring syslog to listen on that, just define a bogus virtual host that logs to syslog.</p>
<pre>
&lt;VirtualHost 127.0.0.2:80&gt;
        ServerName JustForOpeningSyslog
        Redirect permanent / http://127.0.0.1/
        ErrorLog syslog
&lt;/VirtualHost&gt;</pre>
<p>Now apache calls <code>openlog(3)</code> with <code>LOG_NDELAY</code> before being chrooted by libapache2-mod-chroot, and libapache2-mod-php4&#8217;s <code>syslog(3)</code> calls work just fine.<br />
(Idea stolen from <a href="http://cryptio.net/~ferlatte/blog/2004/10/01/#syslog_and_chroot">syslog(3) and chroot(2)</a>.)</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8</post-id>	</item>
		<item>
		<title>Chrooting MySQL on Debian</title>
		<link>/articles/chrooting-mysql-on-debian/</link>
					<comments>/articles/chrooting-mysql-on-debian/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Fri, 04 Mar 2005 22:46:45 +0000</pubDate>
				<category><![CDATA[Config]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/03/08/chrooting-mysql-on-debian/</guid>

					<description><![CDATA[It&#8217;s quite easy to chroot bind9 and apache on Debian. (See this page for bind9 and libapache2-mod-chroot or libapache2-mod-security for apache.) But I&#8217;ve found no guide for chrooting MySQL, so here&#8217;s my short recipe: Prepare the chroot directory. It&#8217;s recommended to use an extra partition/filesystem for it. I will use /srv/mysql (which is an LVM2<br />[&#8594; <a href="/articles/chrooting-mysql-on-debian/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>It&#8217;s quite easy to chroot <a href="http://www.isc.org/sw/bind/">bind9</a> and <a href="http://httpd.apache.org/">apache</a> on <a href="http://www.debian.org/">Debian</a>.  (See <a href="http://cryptio.net/~ferlatte/blog/config/bind9/">this page</a> for bind9 and <a href="http://packages.debian.org/libapache2-mod-chroot">libapache2-mod-chroot</a> or <a href="http://packages.debian.org/libapache2-mod-security">libapache2-mod-security</a> for apache.)</p>
<p>But I&#8217;ve found no guide for chrooting <a href="http://dev.mysql.com/">MySQL</a>, so here&#8217;s my short recipe:</p>
<ul>
<li>Prepare the chroot directory. It&#8217;s recommended to use an extra partition/filesystem for it. I will use <code>/srv/mysql</code> (which is an <a href ="http://sourceware.org/lvm2/">LVM2</a> partition with an ext3 filesystem on my system) for the rest of the text.</li>
<li>Stop MySQL:
<pre>/etc/init.d/mysql stop</pre>
</li>
<li>Copy the databases to new location:
<pre>mkdir -p /srv/mysql/var/lib
cp -a /var/lib/mysql /srv/mysql/var/lib</pre>
</li>
<li>Copy <a href="/static/mysql-chroot">this script</a> to <code>/etc/default/mysql-chroot</code></li>
<li>Edit <code>/etc/init.d/mysql</code>:
<ul>
<li>Source the <code><a href="/static/mysql-chroot">mysql-chroot</a></code> script somewhere at the top:
<pre>&hellip;
test -x /usr/sbin/mysqld || exit 0

<strong>. /etc/default/mysql-chroot</strong>

SELF=$(cd $(dirname $0); pwd -P)/$(basename $0)
&hellip;</pre>
</li>
<li>Run <code>setup_chroot</code> right in the start section:
<pre>&hellip;
if mysqld_status check_alive nowarn; then
  echo &quot;...already running.&quot;
else
<strong>  setup_chroot</strong>
  /usr/bin/mysqld_safe &gt; /dev/null 2&gt;&amp;1 &amp;
&hellip;</pre>
</li>
<li>Somehow <code>/var/run/mysqld/mysqld.pid</code> disappears after each start.  We have to create it each time, otherwise the <code>stop</code> command won&#8217;t work properly:
<pre>&hellip;
if mysqld_status check_alive warn; then
  echo &quot;.&quot;
<strong>  ln -sf $CHROOT_DIR/var/run/mysqld/mysqld.pid \
                 /var/run/mysqld</strong>
  # Now start mysqlcheck or whatever the admin wants.
  /etc/mysql/debian-start
&hellip;</pre>
</li>
</ul>
</li>
<li>In <code>/etc/mysql/debian.cnf</code>, change the <code>socket</code> line to:
<pre>socket = /srv/mysql/var/run/mysqld/mysqld.sock</pre>
</li>
<li>In <code>/etc/mysql/my.cnf</code>:
<ul>
<li>Change the <code>socket</code> line in the <code>[client]</code> section to:
<pre>socket = /srv/mysql/var/run/mysqld/mysqld.sock</pre>
<p>Don&#8217;t change the <code>socket</code> lines in the other sections!</p>
</li>
<li>Add
<pre>chroot = /srv/mysql</pre>
<p> to the <code>[mysqld]</code> section.</p>
</li>
</ul>
</li>
<li>Prepend <code>/srv/mysql</code> to the log files listed in <code>/etc/logrotate.d/mysql-server</code></li>
<li>Start MySQL:
<pre>/etc/init.d/mysql start</pre>
</li>
<li>Check <code>/var/log/syslog</code> for errors ;-)</li>
</ul>
<p><em><strong>March 13th, 2005:</strong> I&#8217;ve updated the script for newer Debian packages, see <a href="/2005/03/13/updated-mysql-chroot-script/">Updated MySQL Chroot Script</a> for more information.</em></p>
<p><em><strong>July 30th, 2006:</strong> These modifications still work fine on the current stable Debian release (3.1, &#8220;sarge&#8221;).  The mysql packages in the testing (&#8220;etch&#8221;) and unstable (&#8220;sid&#8221;) distributions of Debian need a few additional changes, I&#8217;ll post an updated guide in a few days.</em></p>
<p><em><strong>December 30th, 2006:</strong> I&#8217;ve made an <a href="/2006/12/30/chrooting-recent-mysql-versions-on-debian-and-ubuntu/">updated guide</a> on how to chroot more recent MySQL packages on Debian and Ubuntu</em></p>
]]></content:encoded>
					
					<wfw:commentRss>/articles/chrooting-mysql-on-debian/feed/</wfw:commentRss>
			<slash:comments>16</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7</post-id>	</item>
		<item>
		<title>Tilt Wheel Mouse</title>
		<link>/articles/tilt-wheel-mouse/</link>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Tue, 01 Mar 2005 16:41:35 +0000</pubDate>
				<category><![CDATA[Config]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mozilla]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/03/08/tilt-wheel-mouse/</guid>

					<description><![CDATA[Now that I finally got the kernel&#8217;s evdev driver running on my machine, I managed to get my tilt-wheel mouse working. Mouse section from /etc/X11/XF86Config-4: Section &#34;InputDevice&#34; Identifier &#34;Configured Mouse&#34; Driver &#34;mouse&#34; Option &#34;CorePointer&#34; Option &#34;Protocol&#34; &#34;evdev&#34; Option &#34;Dev Name&#34; &#34;*Microsoft IntelliMouse*&#34; Option &#34;Buttons&#34; &#34;9&#34; Option &#34;ZAxisMapping&#34; &#34;8 9 6 7&#34; Option &#34;Emulate3Buttons&#34; &#34;false&#34; EndSection<br />[&#8594; <a href="/articles/tilt-wheel-mouse/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>Now that I finally got the kernel&#8217;s <a href="/2005/02/28/32-bit-compat-evdev-driver/">evdev</a> driver running on my machine, I managed to get my tilt-wheel mouse working.</p>
<ul>
<li>
	Mouse section from <code>/etc/X11/XF86Config-4</code>:</p>
<pre>
Section &quot;InputDevice&quot;
  Identifier &quot;Configured Mouse&quot;
  Driver     &quot;mouse&quot;
  Option     &quot;CorePointer&quot;
  Option     &quot;Protocol&quot;        &quot;evdev&quot;
  Option     &quot;Dev Name&quot;        &quot;*Microsoft IntelliMouse*&quot;
  Option     &quot;Buttons&quot;         &quot;9&quot;
  Option     &quot;ZAxisMapping&quot;    &quot;8 9 6 7&quot;
  Option     &quot;Emulate3Buttons&quot; &quot;false&quot;
EndSection</pre>
</li>
<li>
	To get the buttons in the correct order for X11, change <code>/etc/X11/Xmodmap</code> to:</p>
<pre>pointer = 1 2 3 8 9 7 6 4 5</pre>
<p>Now horizontal scrolling should work with GNOME!</p>
</li>
<li>
	In <a href="http://www.mozilla.org/">Mozilla</a>-based browsers however, tilting the wheel moves back- or forward in the history now. To fix this open <code>about:config</code> and set <code>mousewheel.horizscroll.withnokey.action</code> to <code>0</code>.<br /> Unfortunately Mozilla and GNOME seem to have different interpretations of <em>left</em> and	<em>right</em>; set <code>mousewheel.horizscroll.withnokey.sysnumlines</code> to <code>true</code> to fix that.</li>
<li>
	To get the sides buttons going back- and forward in history again, install <code>xbindkeys</code> and <code>xvkbd</code>. Bind the buttons to <code>Alt-Left</code> and <code>Alt-Right</code> in <code>~/.xbindkeysrc</code>:</p>
<pre>&quot;xvkbd -text &quot;&#92;[Alt_L]&#92;[Left]&quot;&quot;
  m:0x10 + b:8
&quot;xvkbd -text &quot;&#92;[Alt_L]&#92;[Right]&quot;&quot;
  m:0x10 + b:9</pre>
<p>and run <code>xbindkeys</code> in <code>~/.gnomerc</code></p>
</li>
</ul>
<p><em><strong>January 15th, 2006:</strong> Xorg 6.9 and later come with a different <em>evdev</em> driver. I&#8217;ve made a new <a href="/2006/01/15/updated-logitech-mx1000-configuration/">guide</a> now. The new guide talks about the Logitech MX1000 but it&#8217;s quite easy to adapt the configuartion for other mice.</em></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6</post-id>	</item>
		<item>
		<title>32-bit compat evdev driver</title>
		<link>/articles/32-bit-compat-evdev-driver/</link>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Mon, 28 Feb 2005 20:39:51 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux Kernel]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/03/08/32-bit-compat-evdev-driver/</guid>

					<description><![CDATA[I&#8217;m running a ppc64 kernel with ppc32. This combination has a few shortcomings. One was that the kernel&#8217;s evdev driver had no 32-bit compatibility. I couldn&#8217;t use XFree86&#8217;s evdev support because of this, and hal had some problems too. I finally was annoyed enough to hack the evdev driver. Here&#8217;s the ugly patch: evdev-compat-2.6.11-rc3-mm2.patch March<br />[&#8594; <a href="/articles/32-bit-compat-evdev-driver/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>I&#8217;m running a ppc64 kernel with ppc32. This combination has a few shortcomings.  One was that the kernel&#8217;s evdev driver had no 32-bit compatibility. I couldn&#8217;t use XFree86&#8217;s evdev support because of this, and <a href="http://www.freedesktop.org/Software/hal">hal</a> had some problems too. I finally was annoyed enough to hack the evdev driver.  Here&#8217;s the ugly patch:<br />
<a href="/static/kernel/evdev-compat-2.6.11-rc3-mm2.patch">evdev-compat-2.6.11-rc3-mm2.patch</a></p>
<p><em><strong>March 16th, 2005:</strong> The patch has been integrated into 2.6.11-mm3</em></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5</post-id>	</item>
		<item>
		<title>Exim 4 and Dynamic IP-Addresses</title>
		<link>/articles/exim-4-and-dynamic-ip-addresses/</link>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Sat, 26 Feb 2005 11:38:29 +0000</pubDate>
				<category><![CDATA[Config]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Network]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/2005/03/08/exim-4-and-dynamic-ip-addresses/</guid>

					<description><![CDATA[I&#8217;ve recently changed my network connection at home to a provider which assigns dynamic addresses. Exim always provided a broken HELO/EHLO name to my smarthost since then because my externally visible hostname changes each time I connect. I&#8217;m now using Exim&#8217;s Perl interface to lookup the assigned hostname when connecting my smarthost: /etc/exim4/exim.pl: Don&#8217;t forget<br />[&#8594; <a href="/articles/exim-4-and-dynamic-ip-addresses/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>I&#8217;ve recently changed my network connection at home to a provider which assigns dynamic addresses. <a href="http://www.exim.org/">Exim</a> always provided a broken HELO/EHLO name to my smarthost since then because my externally visible hostname changes each time I connect. I&#8217;m now using Exim&#8217;s Perl interface to lookup the assigned hostname when connecting my smarthost:</p>
<ul>
<li><code>/etc/exim4/exim.pl</code>:<br />
<em>Don&#8217;t forget to change <code>ppp0</code> to the interface you want to handle!</em></p>
<pre>
#! /usr/bin/perl

# Requires libio-interface-perl

use strict;
use IO::Socket;
use IO::Interface;

sub get_remote_helo_data()
{
    my $s = IO::Socket::INET-&gt;new(Proto =&gt; 'udp');
    my $addr = inet_aton($s-&gt;if_addr('ppp0'));
    my $hostname = gethostbyaddr($addr, AF_INET);

    $hostname = '' if (!$hostname);

    return $hostname;
}
</pre>
</li>
<li><code>/etc/exim4/conf.d/main/50_exim4-localconfig_perl</code>:
<pre>
#main/50_exim4-localconfig_perl
perl_at_start = true
perl_startup = do '/etc/exim4/exim.pl'
</pre>
</li>
<li>Add the following code to the appropriate transport, e.g. <code>remote_smtp_smarthost</code>:
<pre>
helo_data = \
  ${if &gt;{${strlen:${perl{get_remote_helo_data}}}}{0} \
                 {${perl{get_remote_helo_data}}} \
                 {$primary_hostname}}
</pre>
</li>
</ul>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4</post-id>	</item>
		<item>
		<title>Mitigating SSH Brute Force Attacks with ipt_recent</title>
		<link>/articles/mitigating-ssh-brute-force-attacks-with-ipt_recent/</link>
					<comments>/articles/mitigating-ssh-brute-force-attacks-with-ipt_recent/#comments</comments>
		
		<dc:creator><![CDATA[Jürgen Kreileder]]></dc:creator>
		<pubDate>Fri, 18 Feb 2005 19:16:37 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">http://blog.blackdown.de/?p=3</guid>

					<description><![CDATA[As my SSH server only accepts public key based authentication, I&#8217;m not really worried about brute force password attacks. But these scans tend to clobber my auth.log. So after some discussion with Andrew Pollock, I&#8217;ve written a few custom actions for my shorewall setup. They use the ipt_recent module which allows to track seen IP<br />[&#8594; <a href="/articles/mitigating-ssh-brute-force-attacks-with-ipt_recent/" class="more-link">Read the rest of this entry</a>]]]></description>
										<content:encoded><![CDATA[<p>As my <a href="http://www.openssh.com/">SSH</a> server only accepts public key based authentication, I&#8217;m not really worried about brute force password attacks. But these scans tend to clobber my <code>auth.log</code>. So after some discussion with <a href="http://blog.andrew.net.au/2005/02/17#ipt_recent_and_ssh_attacks">Andrew Pollock</a>, I&#8217;ve written a few custom actions for my <a href="http://www.shorewall.net/">shorewall</a> setup. They use the <a href="http://snowman.net/projects/ipt_recent/">ipt_recent</a> module which allows to track seen IP addresses and match against them using some criteria.</p>
<p>The <code><a href="/static/shorewall/Limit">Limit</a></code> action can be used to limit accepted connections per IP and timeframe.  The hardcoded limit currently is 6 connections per 60 seconds.  If an IP tries to connect more often, the attempts will be DROPed.</p>
<p>The <code><a href="/static/shorewall/Whitelist">Whitelist</a></code> action provides some simple port-knocking whitelist.  If you know the <code>WHITELIST_PORT</code> and can lift the limits imposed by the <code><a href="/static/shorewall/Limit">Limit</a></code> action for your IP and 60 seconds by connecting to that port.</p>
<p>Here&#8217;s how you can integrate those two actions:</p>
<ul>
<li>Create two empty files:
<ul>
<li><code>shorewall/action.Limit</code>
</li>
<li><code>shorewall/action.Whitelist</code></li>
</ul>
</li>
<li>Copy <code><a href="/static/shorewall/Limit">Limit</a></code> and <code><a href="/static/shorewall/Whitelist">Whitelist</a></code> to the <code>shorewall</code> directory</li>
<li>Add <code>Limit</code> and <code>Whitelist</code> to <code>shorewall/actions</code></li>
<li>Set <code>WHITELIST_PORT</code> in <code>shorewall/params</code>
</li>
<li>Use <code>Limit</code> in <code>shorewall/rules</code>,  for instance:
<pre>
Limit:ULOG:SSH    net  fw  tcp  ssh
Limit:ULOG:IMAP   net  fw  tcp  imap,imaps
</pre>
<p>Note: You <strong>must</strong> use the &lt;action&gt;:&lt;log&gt;:&lt;tag&gt; format for the rules. <code><a href="/static/shorewall/Limit">Limit</a></code> uses the &lt;tag&gt; for the ipt_recent table name.</p>
</li>
<li>Optionally add a <code>Whitelist</code> rule:
<pre>
Whitelist:ULOG    net  fw
</pre>
</li>
</ul>
<p>If you&#8217;re running <a href="http://www.openssh.com/">OpenSSH</a> 3.9 or later, you additionally might want to  set <code>MaxAuthTries</code> to 1 (see <code>sshd_config(5)</code>).</p>
<p><em><strong>May 9th, 2005:</strong> I have found a bug in the ipt_recent module, see <a href="/2005/05/09/fixing-the-ipt_recent-netfilter-module/">this article</a> for more information and a fix.</em></p>
]]></content:encoded>
					
					<wfw:commentRss>/articles/mitigating-ssh-brute-force-attacks-with-ipt_recent/feed/</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3</post-id>	</item>
	</channel>
</rss>
