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

<channel>
	<title>LPE</title>
	<atom:link href="http://mute.nu/feed/" rel="self" type="application/rss+xml" />
	<link>http://mute.nu</link>
	<description>Random ramblings about things related to the digital world</description>
	<lastBuildDate>Mon, 23 Apr 2012 21:23:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>How to proxy through Nginx and handle response errors</title>
		<link>http://mute.nu/2012/how-to-proxy-through-nginx-and-handle-response-errors/</link>
		<comments>http://mute.nu/2012/how-to-proxy-through-nginx-and-handle-response-errors/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 21:23:33 +0000</pubDate>
		<dc:creator>lpe</dc:creator>
				<category><![CDATA[-]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[http codes]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[webserver]]></category>

		<guid isPermaLink="false">http://mute.nu/?p=336</guid>
		<description><![CDATA[The third post in my Nginx flow, or whatever. A very good configuration example if you&#8217;re proxying requests to different backends and wants to &#8220;failover&#8221; if the backend server returns a 404 error code. server { root /var/www/site1.com; server_name localhost; &#160; location / { error_page 404 = @try_backup_path; proxy_intercept_errors on; proxy_pass http://localhost:8000; } &#160; location [...]]]></description>
			<content:encoded><![CDATA[<p>The third post in my Nginx flow, or whatever.<br />
A very good configuration example if you&#8217;re proxying requests to different backends and wants to &#8220;failover&#8221; if the backend server returns a 404 error code.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="nginx"><pre class="de1">server {
        root /var/www/site1.com;
        server_name localhost;
&nbsp;
        location / {
                error_page 404 = @try_backup_path;
                proxy_intercept_errors on;
                proxy_pass http://localhost:8000;                                                                                                                             
        }
&nbsp;
        location @try_backup_path {
                proxy_pass http://localhost:8001;                                                                                                                             
        }
}</pre></div></div></div></div></div></div></div>




	<a rel='nofollow'  href='http://www.facebook.com/share.php?u=http%3A%2F%2Fmute.nu%2F2012%2Fhow-to-proxy-through-nginx-and-handle-response-errors%2F&amp;t=How%20to%20proxy%20through%20Nginx%20and%20handle%20response%20errors' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/facebook.png' title='Facebook' alt='Facebook' class='' /></a>
	<a rel='nofollow'  href='http://twitter.com/home?status=How%20to%20proxy%20through%20Nginx%20and%20handle%20response%20errors%20-%20http%3A%2F%2Fmute.nu%2F2012%2Fhow-to-proxy-through-nginx-and-handle-response-errors%2F' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/twitter.png' title='Twitter' alt='Twitter' class='' /></a>
	<a rel='nofollow'  href='http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fmute.nu%2F2012%2Fhow-to-proxy-through-nginx-and-handle-response-errors%2F&amp;title=How%20to%20proxy%20through%20Nginx%20and%20handle%20response%20errors&amp;bodytext=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/digg.png' title='Digg' alt='Digg' class='' /></a>
	<a rel='nofollow'  href='http://delicious.com/post?url=http%3A%2F%2Fmute.nu%2F2012%2Fhow-to-proxy-through-nginx-and-handle-response-errors%2F&amp;title=How%20to%20proxy%20through%20Nginx%20and%20handle%20response%20errors&amp;notes=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/delicious.png' title='del.icio.us' alt='del.icio.us' class='' /></a>
	<a rel='nofollow'  href='http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fmute.nu%2F2012%2Fhow-to-proxy-through-nginx-and-handle-response-errors%2F&amp;title=How%20to%20proxy%20through%20Nginx%20and%20handle%20response%20errors&amp;source=LPE+Random+ramblings+about+things+related+to+the+digital+world&amp;summary=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/linkedin.png' title='LinkedIn' alt='LinkedIn' class='' /></a>
	<a rel='nofollow'  href='http://mute.nu/feed/' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/rss.png' title='RSS' alt='RSS' class='' /></a>
	<a rel='nofollow'  href='http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmute.nu%2F2012%2Fhow-to-proxy-through-nginx-and-handle-response-errors%2F&amp;title=How%20to%20proxy%20through%20Nginx%20and%20handle%20response%20errors' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/stumbleupon.png' title='StumbleUpon' alt='StumbleUpon' class='' /></a>
	<a rel='nofollow'  href='http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fmute.nu%2F2012%2Fhow-to-proxy-through-nginx-and-handle-response-errors%2F&amp;title=How%20to%20proxy%20through%20Nginx%20and%20handle%20response%20errors&amp;annotation=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/googlebookmark.png' title='Google Bookmarks' alt='Google Bookmarks' class='' /></a>
	<a rel='nofollow'  href='http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fmute.nu%2F2012%2Fhow-to-proxy-through-nginx-and-handle-response-errors%2F&amp;submitHeadline=How%20to%20proxy%20through%20Nginx%20and%20handle%20response%20errors&amp;submitSummary=&amp;submitCategory=science&amp;submitAssetType=text' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/yahoobuzz.png' title='Yahoo! Buzz' alt='Yahoo! Buzz' class='' /></a>
	<a rel='nofollow'  href='mailto:?subject=How%20to%20proxy%20through%20Nginx%20and%20handle%20response%20errors&amp;body=http%3A%2F%2Fmute.nu%2F2012%2Fhow-to-proxy-through-nginx-and-handle-response-errors%2F' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/email_link.png' title='email' alt='email' class='' /></a>
	<a rel='nofollow'  href='http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fmute.nu%2F2012%2Fhow-to-proxy-through-nginx-and-handle-response-errors%2F&amp;t=How%20to%20proxy%20through%20Nginx%20and%20handle%20response%20errors' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/myspace.png' title='MySpace' alt='MySpace' class='' /></a>
	<a rel='nofollow'  href='http://www.printfriendly.com/print?url=http%3A%2F%2Fmute.nu%2F2012%2Fhow-to-proxy-through-nginx-and-handle-response-errors%2F&amp;partner=sociable' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/pdf.png' title='PDF' alt='PDF' class='' /></a>
	<a rel='nofollow'  href='http://www.printfriendly.com/print?url=http%3A%2F%2Fmute.nu%2F2012%2Fhow-to-proxy-through-nginx-and-handle-response-errors%2F&amp;partner=sociable' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/printfriendly.png' title='Print' alt='Print' class='' /></a>
	<a rel='nofollow'  href='http://reddit.com/submit?url=http%3A%2F%2Fmute.nu%2F2012%2Fhow-to-proxy-through-nginx-and-handle-response-errors%2F&amp;title=How%20to%20proxy%20through%20Nginx%20and%20handle%20response%20errors' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/reddit.png' title='Reddit' alt='Reddit' class='' /></a>
	<a rel='nofollow'  href='http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fmute.nu%2F2012%2Fhow-to-proxy-through-nginx-and-handle-response-errors%2F&amp;t=How%20to%20proxy%20through%20Nginx%20and%20handle%20response%20errors&amp;s=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/tumblr.png' title='Tumblr' alt='Tumblr' class='' /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://mute.nu/2012/how-to-proxy-through-nginx-and-handle-response-errors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automatic Nginx maintenance page</title>
		<link>http://mute.nu/2012/automatic-nginx-maintenance-page/</link>
		<comments>http://mute.nu/2012/automatic-nginx-maintenance-page/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 21:15:25 +0000</pubDate>
		<dc:creator>lpe</dc:creator>
				<category><![CDATA[-]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[maintenance mode]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[webhosting]]></category>
		<category><![CDATA[webserver]]></category>

		<guid isPermaLink="false">http://mute.nu/?p=332</guid>
		<description><![CDATA[A small snippet I&#8217;m using to put sites in to maintenance mode, even though I admit it&#8217;s not something you should do in 2012, it&#8217;s still needed from time to time and this minimize the downtime atleast a bit. Theoretically, if you put a file called &#8216;maintenance.html&#8217; in to your wwwroot it automatically puts the [...]]]></description>
			<content:encoded><![CDATA[<p>A small snippet I&#8217;m using to put sites in to maintenance mode, even though I admit it&#8217;s not something you should do in 2012, it&#8217;s still needed from time to time and this minimize the downtime atleast a bit.</p>
<p>Theoretically, if you put a file called &#8216;maintenance.html&#8217; in to your wwwroot it automatically puts the site in maintenance mode and serves all remote addresses a 503 except the ones you specify in the geo section, and when you&#8217;re done with your update or whatever, just remove the file and everything is back to normal, no downtime or restarting daemons.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="nginx"><pre class="de1">geo $maintenance_ip {
        default 0;
        your.ip.address.here 1;
        }
&nbsp;
if ($maintenance_ip = 0) {
        set $maintenance y;
        }
&nbsp;
if (-f /var/www/site1.com/maintenance.html) {
        set $maintenance y$maintenance;
        }
&nbsp;
if ($maintenance = yy) {
         return 503;
        }
&nbsp;
error_page 503 @maintenance;
         location @maintenance {
         rewrite ^(.*)$ /maintenance.html break;
        }</pre></div></div></div></div></div></div></div>




	<a rel='nofollow'  href='http://www.facebook.com/share.php?u=http%3A%2F%2Fmute.nu%2F2012%2Fautomatic-nginx-maintenance-page%2F&amp;t=Automatic%20Nginx%20maintenance%20page%20' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/facebook.png' title='Facebook' alt='Facebook' class='' /></a>
	<a rel='nofollow'  href='http://twitter.com/home?status=Automatic%20Nginx%20maintenance%20page%20%20-%20http%3A%2F%2Fmute.nu%2F2012%2Fautomatic-nginx-maintenance-page%2F' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/twitter.png' title='Twitter' alt='Twitter' class='' /></a>
	<a rel='nofollow'  href='http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fmute.nu%2F2012%2Fautomatic-nginx-maintenance-page%2F&amp;title=Automatic%20Nginx%20maintenance%20page%20&amp;bodytext=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/digg.png' title='Digg' alt='Digg' class='' /></a>
	<a rel='nofollow'  href='http://delicious.com/post?url=http%3A%2F%2Fmute.nu%2F2012%2Fautomatic-nginx-maintenance-page%2F&amp;title=Automatic%20Nginx%20maintenance%20page%20&amp;notes=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/delicious.png' title='del.icio.us' alt='del.icio.us' class='' /></a>
	<a rel='nofollow'  href='http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fmute.nu%2F2012%2Fautomatic-nginx-maintenance-page%2F&amp;title=Automatic%20Nginx%20maintenance%20page%20&amp;source=LPE+Random+ramblings+about+things+related+to+the+digital+world&amp;summary=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/linkedin.png' title='LinkedIn' alt='LinkedIn' class='' /></a>
	<a rel='nofollow'  href='http://mute.nu/feed/' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/rss.png' title='RSS' alt='RSS' class='' /></a>
	<a rel='nofollow'  href='http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmute.nu%2F2012%2Fautomatic-nginx-maintenance-page%2F&amp;title=Automatic%20Nginx%20maintenance%20page%20' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/stumbleupon.png' title='StumbleUpon' alt='StumbleUpon' class='' /></a>
	<a rel='nofollow'  href='http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fmute.nu%2F2012%2Fautomatic-nginx-maintenance-page%2F&amp;title=Automatic%20Nginx%20maintenance%20page%20&amp;annotation=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/googlebookmark.png' title='Google Bookmarks' alt='Google Bookmarks' class='' /></a>
	<a rel='nofollow'  href='http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fmute.nu%2F2012%2Fautomatic-nginx-maintenance-page%2F&amp;submitHeadline=Automatic%20Nginx%20maintenance%20page%20&amp;submitSummary=&amp;submitCategory=science&amp;submitAssetType=text' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/yahoobuzz.png' title='Yahoo! Buzz' alt='Yahoo! Buzz' class='' /></a>
	<a rel='nofollow'  href='mailto:?subject=Automatic%20Nginx%20maintenance%20page%20&amp;body=http%3A%2F%2Fmute.nu%2F2012%2Fautomatic-nginx-maintenance-page%2F' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/email_link.png' title='email' alt='email' class='' /></a>
	<a rel='nofollow'  href='http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fmute.nu%2F2012%2Fautomatic-nginx-maintenance-page%2F&amp;t=Automatic%20Nginx%20maintenance%20page%20' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/myspace.png' title='MySpace' alt='MySpace' class='' /></a>
	<a rel='nofollow'  href='http://www.printfriendly.com/print?url=http%3A%2F%2Fmute.nu%2F2012%2Fautomatic-nginx-maintenance-page%2F&amp;partner=sociable' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/pdf.png' title='PDF' alt='PDF' class='' /></a>
	<a rel='nofollow'  href='http://www.printfriendly.com/print?url=http%3A%2F%2Fmute.nu%2F2012%2Fautomatic-nginx-maintenance-page%2F&amp;partner=sociable' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/printfriendly.png' title='Print' alt='Print' class='' /></a>
	<a rel='nofollow'  href='http://reddit.com/submit?url=http%3A%2F%2Fmute.nu%2F2012%2Fautomatic-nginx-maintenance-page%2F&amp;title=Automatic%20Nginx%20maintenance%20page%20' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/reddit.png' title='Reddit' alt='Reddit' class='' /></a>
	<a rel='nofollow'  href='http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fmute.nu%2F2012%2Fautomatic-nginx-maintenance-page%2F&amp;t=Automatic%20Nginx%20maintenance%20page%20&amp;s=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/tumblr.png' title='Tumblr' alt='Tumblr' class='' /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://mute.nu/2012/automatic-nginx-maintenance-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nginx as static cache frontend proxy for Apache</title>
		<link>http://mute.nu/2012/nginx-as-static-cache-frontend-proxy-for-apache/</link>
		<comments>http://mute.nu/2012/nginx-as-static-cache-frontend-proxy-for-apache/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 21:03:33 +0000</pubDate>
		<dc:creator>lpe</dc:creator>
				<category><![CDATA[-]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[webhosting]]></category>
		<category><![CDATA[webserver]]></category>

		<guid isPermaLink="false">http://mute.nu/?p=327</guid>
		<description><![CDATA[Nearly more standard then not, running Nginx infront of Apache to cache static content is today a very common way of lowering the load on your server, and it&#8217;s truly an extremely easy setup, which I&#8217;ll show. Theoretically Nginx (listening on port 80) responds to every HTTP request coming in to the machine, it later [...]]]></description>
			<content:encoded><![CDATA[<p>Nearly more standard then not, running Nginx infront of Apache to cache static content is today a very common way of lowering the load on your server, and it&#8217;s truly an extremely easy setup, which I&#8217;ll show.</p>
<p>Theoretically Nginx (listening on port 80) responds to every HTTP request coming in to the machine, it later decides if it should respond to it itself or make Apache do the response. If it decides to pass the request to Apache it sends it down to localhost (in this particular example, atleast) to Apache (listening on localhost and port 8080), gets a response back and then proxies it back out to the client.</p>
<p>Technically, it looks like this in nginx.conf.<br />
We cache whatever is matched by the regex, which should be self explanatory.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="nginx"><pre class="de1">server {
        listen 80;
        server_name site1.com;
        access_log /var/log/nginx/site1.com.log;
&nbsp;
        # static content folders
        location ^~ /(images|css|js) {
                root /var/www/site1.com/current;
                access_log /var/log/nginx/site1.com.static.log;
        }
&nbsp;
        # static content files
        location ~* \.(js|css|rdf|xml|ico|txt|jpg|gif|png|jpeg)$ {
                root /var/www/site1.com/current;
                access_log /var/log/nginx/site1.com.static.log;
        }
&nbsp;
        # proxy the rest to apache
        location / {
&nbsp;
            # proxy settings
            proxy_pass         http://127.0.0.1:8080/;
            proxy_redirect     off;
&nbsp;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
&nbsp;
            client_max_body_size       10m;
            client_body_buffer_size    128k;
&nbsp;
            proxy_connect_timeout      90;
            proxy_send_timeout         90;
            proxy_read_timeout         90;
&nbsp;
            proxy_buffer_size          4k;
            proxy_buffers              4 32k;
            proxy_busy_buffers_size    64k;
            proxy_temp_file_write_size 64k;
        }</pre></div></div></div></div></div></div></div>


<p>&#8230; And in httpd.conf.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="nginx"><pre class="de1">&nbsp;
NameVirtualHost *:8080
Listen 8080
&nbsp;
&lt;VirtualHost *:8080&gt;
        ....
        ....
&lt;/VirtualHost&gt;</pre></div></div></div></div></div></div></div>




	<a rel='nofollow'  href='http://www.facebook.com/share.php?u=http%3A%2F%2Fmute.nu%2F2012%2Fnginx-as-static-cache-frontend-proxy-for-apache%2F&amp;t=Nginx%20as%20static%20cache%20frontend%20proxy%20for%20Apache' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/facebook.png' title='Facebook' alt='Facebook' class='' /></a>
	<a rel='nofollow'  href='http://twitter.com/home?status=Nginx%20as%20static%20cache%20frontend%20proxy%20for%20Apache%20-%20http%3A%2F%2Fmute.nu%2F2012%2Fnginx-as-static-cache-frontend-proxy-for-apache%2F' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/twitter.png' title='Twitter' alt='Twitter' class='' /></a>
	<a rel='nofollow'  href='http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fmute.nu%2F2012%2Fnginx-as-static-cache-frontend-proxy-for-apache%2F&amp;title=Nginx%20as%20static%20cache%20frontend%20proxy%20for%20Apache&amp;bodytext=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/digg.png' title='Digg' alt='Digg' class='' /></a>
	<a rel='nofollow'  href='http://delicious.com/post?url=http%3A%2F%2Fmute.nu%2F2012%2Fnginx-as-static-cache-frontend-proxy-for-apache%2F&amp;title=Nginx%20as%20static%20cache%20frontend%20proxy%20for%20Apache&amp;notes=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/delicious.png' title='del.icio.us' alt='del.icio.us' class='' /></a>
	<a rel='nofollow'  href='http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fmute.nu%2F2012%2Fnginx-as-static-cache-frontend-proxy-for-apache%2F&amp;title=Nginx%20as%20static%20cache%20frontend%20proxy%20for%20Apache&amp;source=LPE+Random+ramblings+about+things+related+to+the+digital+world&amp;summary=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/linkedin.png' title='LinkedIn' alt='LinkedIn' class='' /></a>
	<a rel='nofollow'  href='http://mute.nu/feed/' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/rss.png' title='RSS' alt='RSS' class='' /></a>
	<a rel='nofollow'  href='http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmute.nu%2F2012%2Fnginx-as-static-cache-frontend-proxy-for-apache%2F&amp;title=Nginx%20as%20static%20cache%20frontend%20proxy%20for%20Apache' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/stumbleupon.png' title='StumbleUpon' alt='StumbleUpon' class='' /></a>
	<a rel='nofollow'  href='http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fmute.nu%2F2012%2Fnginx-as-static-cache-frontend-proxy-for-apache%2F&amp;title=Nginx%20as%20static%20cache%20frontend%20proxy%20for%20Apache&amp;annotation=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/googlebookmark.png' title='Google Bookmarks' alt='Google Bookmarks' class='' /></a>
	<a rel='nofollow'  href='http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fmute.nu%2F2012%2Fnginx-as-static-cache-frontend-proxy-for-apache%2F&amp;submitHeadline=Nginx%20as%20static%20cache%20frontend%20proxy%20for%20Apache&amp;submitSummary=&amp;submitCategory=science&amp;submitAssetType=text' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/yahoobuzz.png' title='Yahoo! Buzz' alt='Yahoo! Buzz' class='' /></a>
	<a rel='nofollow'  href='mailto:?subject=Nginx%20as%20static%20cache%20frontend%20proxy%20for%20Apache&amp;body=http%3A%2F%2Fmute.nu%2F2012%2Fnginx-as-static-cache-frontend-proxy-for-apache%2F' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/email_link.png' title='email' alt='email' class='' /></a>
	<a rel='nofollow'  href='http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fmute.nu%2F2012%2Fnginx-as-static-cache-frontend-proxy-for-apache%2F&amp;t=Nginx%20as%20static%20cache%20frontend%20proxy%20for%20Apache' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/myspace.png' title='MySpace' alt='MySpace' class='' /></a>
	<a rel='nofollow'  href='http://www.printfriendly.com/print?url=http%3A%2F%2Fmute.nu%2F2012%2Fnginx-as-static-cache-frontend-proxy-for-apache%2F&amp;partner=sociable' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/pdf.png' title='PDF' alt='PDF' class='' /></a>
	<a rel='nofollow'  href='http://www.printfriendly.com/print?url=http%3A%2F%2Fmute.nu%2F2012%2Fnginx-as-static-cache-frontend-proxy-for-apache%2F&amp;partner=sociable' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/printfriendly.png' title='Print' alt='Print' class='' /></a>
	<a rel='nofollow'  href='http://reddit.com/submit?url=http%3A%2F%2Fmute.nu%2F2012%2Fnginx-as-static-cache-frontend-proxy-for-apache%2F&amp;title=Nginx%20as%20static%20cache%20frontend%20proxy%20for%20Apache' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/reddit.png' title='Reddit' alt='Reddit' class='' /></a>
	<a rel='nofollow'  href='http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fmute.nu%2F2012%2Fnginx-as-static-cache-frontend-proxy-for-apache%2F&amp;t=Nginx%20as%20static%20cache%20frontend%20proxy%20for%20Apache&amp;s=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/tumblr.png' title='Tumblr' alt='Tumblr' class='' /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://mute.nu/2012/nginx-as-static-cache-frontend-proxy-for-apache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Collector is not started!&#8221; error in Zabbix</title>
		<link>http://mute.nu/2012/collector-is-not-started-error-in-zabbix/</link>
		<comments>http://mute.nu/2012/collector-is-not-started-error-in-zabbix/#comments</comments>
		<pubDate>Mon, 09 Apr 2012 06:30:19 +0000</pubDate>
		<dc:creator>lpe</dc:creator>
				<category><![CDATA[-]]></category>

		<guid isPermaLink="false">http://mute.nu/?p=323</guid>
		<description><![CDATA[A quite brain dead error message, but it basically means that your performance counters are fubar and this is the solution. lodctr /R On your host and then restart the agent, this command basically restarts the performance counters.]]></description>
			<content:encoded><![CDATA[<p>A quite brain dead error message, but it basically means that your performance counters are fubar and this is the solution.</p>
<p><code>lodctr /R</code></p>
<p>On your host and then restart the agent, this command basically restarts the performance counters.</p>


	<a rel='nofollow'  href='http://www.facebook.com/share.php?u=http%3A%2F%2Fmute.nu%2F2012%2Fcollector-is-not-started-error-in-zabbix%2F&amp;t=%22Collector%20is%20not%20started%21%22%20error%20in%20Zabbix' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/facebook.png' title='Facebook' alt='Facebook' class='' /></a>
	<a rel='nofollow'  href='http://twitter.com/home?status=%22Collector%20is%20not%20started%21%22%20error%20in%20Zabbix%20-%20http%3A%2F%2Fmute.nu%2F2012%2Fcollector-is-not-started-error-in-zabbix%2F' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/twitter.png' title='Twitter' alt='Twitter' class='' /></a>
	<a rel='nofollow'  href='http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fmute.nu%2F2012%2Fcollector-is-not-started-error-in-zabbix%2F&amp;title=%22Collector%20is%20not%20started%21%22%20error%20in%20Zabbix&amp;bodytext=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/digg.png' title='Digg' alt='Digg' class='' /></a>
	<a rel='nofollow'  href='http://delicious.com/post?url=http%3A%2F%2Fmute.nu%2F2012%2Fcollector-is-not-started-error-in-zabbix%2F&amp;title=%22Collector%20is%20not%20started%21%22%20error%20in%20Zabbix&amp;notes=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/delicious.png' title='del.icio.us' alt='del.icio.us' class='' /></a>
	<a rel='nofollow'  href='http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fmute.nu%2F2012%2Fcollector-is-not-started-error-in-zabbix%2F&amp;title=%22Collector%20is%20not%20started%21%22%20error%20in%20Zabbix&amp;source=LPE+Random+ramblings+about+things+related+to+the+digital+world&amp;summary=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/linkedin.png' title='LinkedIn' alt='LinkedIn' class='' /></a>
	<a rel='nofollow'  href='http://mute.nu/feed/' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/rss.png' title='RSS' alt='RSS' class='' /></a>
	<a rel='nofollow'  href='http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmute.nu%2F2012%2Fcollector-is-not-started-error-in-zabbix%2F&amp;title=%22Collector%20is%20not%20started%21%22%20error%20in%20Zabbix' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/stumbleupon.png' title='StumbleUpon' alt='StumbleUpon' class='' /></a>
	<a rel='nofollow'  href='http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fmute.nu%2F2012%2Fcollector-is-not-started-error-in-zabbix%2F&amp;title=%22Collector%20is%20not%20started%21%22%20error%20in%20Zabbix&amp;annotation=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/googlebookmark.png' title='Google Bookmarks' alt='Google Bookmarks' class='' /></a>
	<a rel='nofollow'  href='http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fmute.nu%2F2012%2Fcollector-is-not-started-error-in-zabbix%2F&amp;submitHeadline=%22Collector%20is%20not%20started%21%22%20error%20in%20Zabbix&amp;submitSummary=&amp;submitCategory=science&amp;submitAssetType=text' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/yahoobuzz.png' title='Yahoo! Buzz' alt='Yahoo! Buzz' class='' /></a>
	<a rel='nofollow'  href='mailto:?subject=%22Collector%20is%20not%20started%21%22%20error%20in%20Zabbix&amp;body=http%3A%2F%2Fmute.nu%2F2012%2Fcollector-is-not-started-error-in-zabbix%2F' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/email_link.png' title='email' alt='email' class='' /></a>
	<a rel='nofollow'  href='http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fmute.nu%2F2012%2Fcollector-is-not-started-error-in-zabbix%2F&amp;t=%22Collector%20is%20not%20started%21%22%20error%20in%20Zabbix' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/myspace.png' title='MySpace' alt='MySpace' class='' /></a>
	<a rel='nofollow'  href='http://www.printfriendly.com/print?url=http%3A%2F%2Fmute.nu%2F2012%2Fcollector-is-not-started-error-in-zabbix%2F&amp;partner=sociable' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/pdf.png' title='PDF' alt='PDF' class='' /></a>
	<a rel='nofollow'  href='http://www.printfriendly.com/print?url=http%3A%2F%2Fmute.nu%2F2012%2Fcollector-is-not-started-error-in-zabbix%2F&amp;partner=sociable' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/printfriendly.png' title='Print' alt='Print' class='' /></a>
	<a rel='nofollow'  href='http://reddit.com/submit?url=http%3A%2F%2Fmute.nu%2F2012%2Fcollector-is-not-started-error-in-zabbix%2F&amp;title=%22Collector%20is%20not%20started%21%22%20error%20in%20Zabbix' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/reddit.png' title='Reddit' alt='Reddit' class='' /></a>
	<a rel='nofollow'  href='http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fmute.nu%2F2012%2Fcollector-is-not-started-error-in-zabbix%2F&amp;t=%22Collector%20is%20not%20started%21%22%20error%20in%20Zabbix&amp;s=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/tumblr.png' title='Tumblr' alt='Tumblr' class='' /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://mute.nu/2012/collector-is-not-started-error-in-zabbix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A deep dive in to /var/log/lastlog</title>
		<link>http://mute.nu/2012/a-deep-dive-in-to-varloglastlog/</link>
		<comments>http://mute.nu/2012/a-deep-dive-in-to-varloglastlog/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 20:33:55 +0000</pubDate>
		<dc:creator>lpe</dc:creator>
				<category><![CDATA[-]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[lastlog]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[source]]></category>

		<guid isPermaLink="false">http://mute.nu/?p=316</guid>
		<description><![CDATA[A few days ago we had a very peculiar situation at work regarding the file size of /var/log/lastlog and I decided to find out why. This was the initial output that made me very confused: [root@dev ~]# du -sh /var/log/lastlog 52K /var/log/lastlog [root@dev ~]# ls -alh /var/log/lastlog -rw-r--r-- 1 root root 85G Jan 11 14:52 [...]]]></description>
			<content:encoded><![CDATA[<p>A few days ago we had a very peculiar situation at work regarding the file size of /var/log/lastlog and I decided to find out why.</p>
<p>This was the initial output that made me very confused:</p>
<p><code><br />
[root@dev ~]# du -sh /var/log/lastlog<br />
52K     /var/log/lastlog<br />
[root@dev ~]# ls -alh /var/log/lastlog<br />
-rw-r--r-- 1 root root 85G Jan 11 14:52 /var/log/lastlog<br />
</code></p>
<p>As you can see, the file size clearly differs depending on what command I use, I also ran &#8216;df&#8217; and since it reported that my partition was not bigger then 30G&#8217;s in size, and not even half of it was used, I understood that it wasn&#8217;t really a problem, but just something I hadn&#8217;t came across earlier.</p>
<p>After the regular minutes on Google and IRC, I quickly understood that it was a sparse file, and for those of you that aren&#8217;t familiar with sparse files, this is Wikipedias explanation which I found very fitting.</p>
<p><em>&#8220;In computer science, a sparse file is a type of computer file that attempts to use file system space more efficiently when blocks allocated to the file are mostly empty. This is achieved by writing brief information (metadata) representing the empty blocks to disk instead of the actual &#8220;empty&#8221; space which makes up the block, using less disk space. The full block size is written to disk as the actual size only when the block contains &#8220;real&#8221; (non-empty) data.&#8221;</em></p>
<p>After understanding this, my heart rate dropped back to normal, but I still wanted to find out <strong>why</strong> it was showing me such a size as 85GB, which is millions times more then just 52K.</p>
<p>After consulting with <a href="http://7bits.nl/blog/" title="Peter van Dijk" target="_blank">Peter van Dijk</a>, who tends to have the answer to everything, I managed to understand why, and here it is.</p>
<p>This is a snippet from the lastlog source code (lastlog.c) which I hope is pretty self explanatory.</p>
<p><code><br />
        /*<br />
         * Read the right structure.<br />
         */<br />
        fseek(fp, pwd->pw_uid * sizeof(struct lastlog), 0);<br />
        fread(&#038;ll, sizeof(struct lastlog), 1, fp);<br />
</code></p>
<p>This means that the program takes the uid (type &#8216;id&#8217; to find out) of your user, which in my case (connected to Active Directory through LikeWise Open) was 311428236, and multiply that with 292 bytes which is the size of the lastlog structure, and from there adds another 292 bytes, and there&#8217;s your final file size.</p>
<p>In short:</p>
<p>311428236*292+292 = 90937045204<br />
And output from ls without -h (human readable out) is &#8230; you guessed it.<br />
-rw-r&#8211;r&#8211; 1 root root 90937045204 Jan 11 17:00 lastlog</p>
<p>I hope this shed some light on why you suddenly find a huge file on your system and you don&#8217;t know why.<br />
After reading up on this I&#8217;ve managed to realize that specifically lastlog is always a sparse file, they even mention it in the man page.</p>
<p><em>&#8220;NOTE<br />
       The lastlog file is a database which contains info on the last login of each user. You should not rotate it. It is a sparse file, so its size on the disk<br />
       is usually much smaller than the one shown by &#8220;ls -l&#8221; (which can indicate a really big file if you have in passwd users with a high UID). You can display<br />
       its real size with &#8220;ls -s&#8221;.&#8221;<br />
</em><br />
Good luck.</p>


	<a rel='nofollow'  href='http://www.facebook.com/share.php?u=http%3A%2F%2Fmute.nu%2F2012%2Fa-deep-dive-in-to-varloglastlog%2F&amp;t=A%20deep%20dive%20in%20to%20%2Fvar%2Flog%2Flastlog' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/facebook.png' title='Facebook' alt='Facebook' class='' /></a>
	<a rel='nofollow'  href='http://twitter.com/home?status=A%20deep%20dive%20in%20to%20%2Fvar%2Flog%2Flastlog%20-%20http%3A%2F%2Fmute.nu%2F2012%2Fa-deep-dive-in-to-varloglastlog%2F' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/twitter.png' title='Twitter' alt='Twitter' class='' /></a>
	<a rel='nofollow'  href='http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fmute.nu%2F2012%2Fa-deep-dive-in-to-varloglastlog%2F&amp;title=A%20deep%20dive%20in%20to%20%2Fvar%2Flog%2Flastlog&amp;bodytext=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/digg.png' title='Digg' alt='Digg' class='' /></a>
	<a rel='nofollow'  href='http://delicious.com/post?url=http%3A%2F%2Fmute.nu%2F2012%2Fa-deep-dive-in-to-varloglastlog%2F&amp;title=A%20deep%20dive%20in%20to%20%2Fvar%2Flog%2Flastlog&amp;notes=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/delicious.png' title='del.icio.us' alt='del.icio.us' class='' /></a>
	<a rel='nofollow'  href='http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fmute.nu%2F2012%2Fa-deep-dive-in-to-varloglastlog%2F&amp;title=A%20deep%20dive%20in%20to%20%2Fvar%2Flog%2Flastlog&amp;source=LPE+Random+ramblings+about+things+related+to+the+digital+world&amp;summary=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/linkedin.png' title='LinkedIn' alt='LinkedIn' class='' /></a>
	<a rel='nofollow'  href='http://mute.nu/feed/' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/rss.png' title='RSS' alt='RSS' class='' /></a>
	<a rel='nofollow'  href='http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmute.nu%2F2012%2Fa-deep-dive-in-to-varloglastlog%2F&amp;title=A%20deep%20dive%20in%20to%20%2Fvar%2Flog%2Flastlog' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/stumbleupon.png' title='StumbleUpon' alt='StumbleUpon' class='' /></a>
	<a rel='nofollow'  href='http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fmute.nu%2F2012%2Fa-deep-dive-in-to-varloglastlog%2F&amp;title=A%20deep%20dive%20in%20to%20%2Fvar%2Flog%2Flastlog&amp;annotation=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/googlebookmark.png' title='Google Bookmarks' alt='Google Bookmarks' class='' /></a>
	<a rel='nofollow'  href='http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fmute.nu%2F2012%2Fa-deep-dive-in-to-varloglastlog%2F&amp;submitHeadline=A%20deep%20dive%20in%20to%20%2Fvar%2Flog%2Flastlog&amp;submitSummary=&amp;submitCategory=science&amp;submitAssetType=text' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/yahoobuzz.png' title='Yahoo! Buzz' alt='Yahoo! Buzz' class='' /></a>
	<a rel='nofollow'  href='mailto:?subject=A%20deep%20dive%20in%20to%20%2Fvar%2Flog%2Flastlog&amp;body=http%3A%2F%2Fmute.nu%2F2012%2Fa-deep-dive-in-to-varloglastlog%2F' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/email_link.png' title='email' alt='email' class='' /></a>
	<a rel='nofollow'  href='http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fmute.nu%2F2012%2Fa-deep-dive-in-to-varloglastlog%2F&amp;t=A%20deep%20dive%20in%20to%20%2Fvar%2Flog%2Flastlog' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/myspace.png' title='MySpace' alt='MySpace' class='' /></a>
	<a rel='nofollow'  href='http://www.printfriendly.com/print?url=http%3A%2F%2Fmute.nu%2F2012%2Fa-deep-dive-in-to-varloglastlog%2F&amp;partner=sociable' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/pdf.png' title='PDF' alt='PDF' class='' /></a>
	<a rel='nofollow'  href='http://www.printfriendly.com/print?url=http%3A%2F%2Fmute.nu%2F2012%2Fa-deep-dive-in-to-varloglastlog%2F&amp;partner=sociable' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/printfriendly.png' title='Print' alt='Print' class='' /></a>
	<a rel='nofollow'  href='http://reddit.com/submit?url=http%3A%2F%2Fmute.nu%2F2012%2Fa-deep-dive-in-to-varloglastlog%2F&amp;title=A%20deep%20dive%20in%20to%20%2Fvar%2Flog%2Flastlog' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/reddit.png' title='Reddit' alt='Reddit' class='' /></a>
	<a rel='nofollow'  href='http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fmute.nu%2F2012%2Fa-deep-dive-in-to-varloglastlog%2F&amp;t=A%20deep%20dive%20in%20to%20%2Fvar%2Flog%2Flastlog&amp;s=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/tumblr.png' title='Tumblr' alt='Tumblr' class='' /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://mute.nu/2012/a-deep-dive-in-to-varloglastlog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DNS zone transfer scripts for PowerDNS to BIND</title>
		<link>http://mute.nu/2011/dns-zone-transfer-scripts-for-powerdns-to-bind/</link>
		<comments>http://mute.nu/2011/dns-zone-transfer-scripts-for-powerdns-to-bind/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 07:16:55 +0000</pubDate>
		<dc:creator>lpe</dc:creator>
				<category><![CDATA[-]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[bind]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[pdns]]></category>
		<category><![CDATA[powerdns]]></category>

		<guid isPermaLink="false">http://mute.nu/?p=310</guid>
		<description><![CDATA[Our current setup is an internal PDNS server with the MySQL back-end and three BIND slaves scattered across the country, and this is how we transfer zones from the master to the slaves. On the master &#160; &#60;?php ob_start&#40;&#41;; if&#40;!isset&#40;$_SERVER&#91;'PHP_AUTH_USER'&#93;&#41; &#124;&#124; $_SERVER&#91;'PHP_AUTH_USER'&#93; !== '%CLIENTUSER%' &#124;&#124; $_SERVER&#91;'PHP_AUTH_PW'&#93; !== '%CLIENTPASSWD%'&#41; die&#40;&#41;; &#160; if&#40;!isset&#40;$_REQUEST&#91;'hostname'&#93;&#41; &#124;&#124; empty&#40;$_REQUEST&#91;'hostname'&#93;&#41;&#41; die&#40;&#41;; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Our current setup is an internal PDNS server with the MySQL back-end and three BIND slaves scattered across the country, and this is how we transfer zones from the master to the slaves.</p>
<p>On the master</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1">&nbsp;
<span class="kw2">&lt;?php</span>
<span class="kw3">ob_start</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><span class="kw3">isset</span><span class="br0">&#40;</span><span class="re0">$_SERVER</span><span class="br0">&#91;</span><span class="st_h">'PHP_AUTH_USER'</span><span class="br0">&#93;</span><span class="br0">&#41;</span>
        <span class="sy0">||</span> <span class="re0">$_SERVER</span><span class="br0">&#91;</span><span class="st_h">'PHP_AUTH_USER'</span><span class="br0">&#93;</span> <span class="sy0">!==</span> <span class="st_h">'%CLIENTUSER%'</span>
        <span class="sy0">||</span> <span class="re0">$_SERVER</span><span class="br0">&#91;</span><span class="st_h">'PHP_AUTH_PW'</span><span class="br0">&#93;</span> <span class="sy0">!==</span> <span class="st_h">'%CLIENTPASSWD%'</span><span class="br0">&#41;</span> <span class="kw3">die</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><span class="kw3">isset</span><span class="br0">&#40;</span><span class="re0">$_REQUEST</span><span class="br0">&#91;</span><span class="st_h">'hostname'</span><span class="br0">&#93;</span><span class="br0">&#41;</span>
        <span class="sy0">||</span> <span class="kw3">empty</span><span class="br0">&#40;</span><span class="re0">$_REQUEST</span><span class="br0">&#91;</span><span class="st_h">'hostname'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw3">die</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="re0">$configTarget</span> <span class="sy0">=</span> <span class="re0">$_REQUEST</span><span class="br0">&#91;</span><span class="st_h">'hostname'</span><span class="br0">&#93;</span><span class="sy0">;</span>
&nbsp;
<span class="re0">$masters_default</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st_h">'master.company.com'</span> <span class="sy0">=&gt;</span> <span class="st_h">'XXX.XXX.XXX.XXX'</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="re0">$internal_ns</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span>
        <span class="st_h">'ns1.company.com'</span> <span class="sy0">=&gt;</span> <span class="st_h">'XXX.XXX.XXX.XXX'</span><span class="sy0">,</span>
        <span class="st_h">'ns2.company.com'</span> <span class="sy0">=&gt;</span> <span class="st_h">'XXX.XXX.XXX.XXX'</span><span class="sy0">,</span>
        <span class="st_h">'ns3.company.com'</span> <span class="sy0">=&gt;</span> <span class="st_h">'XXX.XXX.XXX.XXX'</span><span class="sy0">,</span>
<span class="br0">&#41;</span><span class="sy0">;</span>
<span class="re0">$external_ns</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span>
        <span class="st_h">'external.othercompany.com'</span> <span class="sy0">=&gt;</span> <span class="st_h">'XXX.XXX.XXX.XXX'</span><span class="sy0">,</span>
<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="re0">$mysql</span> <span class="sy0">=</span> <span class="kw2">new</span> mysqli<span class="br0">&#40;</span><span class="st_h">'%DBHOST%'</span><span class="sy0">,</span><span class="st_h">'%DBUSER%'</span><span class="sy0">,</span><span class="st_h">'%DBPASSWD%'</span><span class="sy0">,</span><span class="st_h">'%DBNAME%'</span><span class="sy0">,%</span>DBPORT<span class="sy0">%</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$mysql</span><span class="sy0">-&gt;</span><span class="me1">connect_error</span><span class="br0">&#41;</span> <span class="kw3">die</span><span class="br0">&#40;</span><span class="re0">$mysql</span><span class="sy0">-&gt;</span><span class="me1">connect_error</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="re0">$sql</span> <span class="sy0">=</span> <span class="st_h">'SELECT DISTINCT d.name,d.account,GROUP_CONCAT(r.content SEPARATOR \';\') AS ns'</span>
        <span class="sy0">.</span> <span class="st_h">' FROM domains AS d'</span>
        <span class="sy0">.</span> <span class="st_h">' RIGHT JOIN records AS r ON d.id=r.domain_id'</span>
        <span class="sy0">.</span> <span class="st_h">' WHERE r.name=d.name AND r.type=\'NS\''</span>
        <span class="sy0">.</span> <span class="st_h">'GROUP BY d.id'</span><span class="sy0">;</span>
<span class="re0">$result</span> <span class="sy0">=</span> <span class="re0">$mysql</span><span class="sy0">-&gt;</span><span class="me1">query</span><span class="br0">&#40;</span><span class="re0">$sql</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="coMULTI">/*
 * Internal named.conf
 */</span>
<span class="re0">$result</span><span class="sy0">-&gt;</span><span class="me1">data_seek</span><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="kw1">while</span><span class="br0">&#40;</span><span class="re0">$domain</span> <span class="sy0">=</span> <span class="re0">$result</span><span class="sy0">-&gt;</span><span class="me1">fetch_object</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
        <span class="re0">$ns</span> <span class="sy0">=</span> <span class="kw3">split</span><span class="br0">&#40;</span><span class="st_h">';'</span><span class="sy0">,</span> <span class="re0">$domain</span><span class="sy0">-&gt;</span><span class="me1">ns</span><span class="br0">&#41;</span><span class="sy0">;</span>
        <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;# Domain: <span class="es6">%s</span><span class="es1">\n</span>&quot;</span><span class="sy0">,</span> <span class="re0">$domain</span><span class="sy0">-&gt;</span><span class="me1">name</span><span class="br0">&#41;</span><span class="sy0">;</span>
        <span class="co1">//printf(&quot;# Account: %s\n&quot;, empty($domain-&gt;account) ? 'n/a' : $domain-&gt;account);</span>
        <span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><span class="kw3">in_array</span><span class="br0">&#40;</span><span class="re0">$configTarget</span><span class="sy0">,</span> <span class="re0">$ns</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
                <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;# WARNING: <span class="es6">%s</span> not in <span class="es6">%s</span><span class="es1">\n</span>&quot;</span><span class="sy0">,</span> <span class="re0">$configTarget</span><span class="sy0">,</span> <span class="re0">$domain</span><span class="sy0">-&gt;</span><span class="me1">name</span><span class="br0">&#41;</span><span class="sy0">;</span>
        <span class="br0">&#125;</span>
        <span class="re0">$masters</span> <span class="sy0">=</span> <span class="re0">$masters_default</span><span class="sy0">;</span>
        <span class="re0">$allow_transfer</span> <span class="sy0">=</span> <span class="re0">$internal_ns</span><span class="sy0">;</span>
        <span class="kw3">unset</span><span class="br0">&#40;</span><span class="re0">$allow_transfer</span><span class="br0">&#91;</span><span class="re0">$configTarget</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span>
        <span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re0">$external_ns</span> <span class="kw1">as</span> <span class="re0">$exthost</span> <span class="sy0">=&gt;</span> <span class="re0">$extip</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
                <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw3">in_array</span><span class="br0">&#40;</span><span class="re0">$exthost</span><span class="sy0">,</span> <span class="re0">$ns</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
                        <span class="re0">$allow_transfer</span><span class="br0">&#91;</span><span class="re0">$exthost</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$extip</span><span class="sy0">;</span>
                <span class="br0">&#125;</span>
        <span class="br0">&#125;</span>
&nbsp;
        <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;zone <span class="es1">\&quot;</span><span class="es6">%s</span><span class="es1">\&quot;</span> {<span class="es1">\n</span>&quot;</span><span class="sy0">,</span> <span class="re0">$domain</span><span class="sy0">-&gt;</span><span class="me1">name</span><span class="br0">&#41;</span><span class="sy0">;</span>
        <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;<span class="es1">\t</span>type slave;<span class="es1">\n</span>&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
        <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;<span class="es1">\t</span>file <span class="es1">\&quot;</span>slaves/<span class="es6">%s</span><span class="es1">\&quot;</span>;<span class="es1">\n</span>&quot;</span><span class="sy0">,</span> <span class="kw3">str_replace</span><span class="br0">&#40;</span><span class="st_h">'/'</span><span class="sy0">,</span> <span class="st_h">'_'</span><span class="sy0">,</span> <span class="re0">$domain</span><span class="sy0">-&gt;</span><span class="me1">name</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
        <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;<span class="es1">\t</span>notify no;<span class="es1">\n</span>&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
        <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;<span class="es1">\t</span>masters { <span class="es6">%s</span>; };<span class="es1">\n</span>&quot;</span><span class="sy0">,</span> <span class="kw3">implode</span><span class="br0">&#40;</span><span class="st_h">'; '</span><span class="sy0">,</span> <span class="re0">$masters</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
        <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;<span class="es1">\t</span>allow-transfer { <span class="es6">%s</span>; };<span class="es1">\n</span>&quot;</span><span class="sy0">,</span> <span class="kw3">implode</span><span class="br0">&#40;</span><span class="st_h">'; '</span><span class="sy0">,</span> <span class="re0">$allow_transfer</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
        <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;<span class="es1">\t</span>allow-notify { <span class="es6">%s</span>; };<span class="es1">\n</span>&quot;</span><span class="sy0">,</span> <span class="kw3">implode</span><span class="br0">&#40;</span><span class="st_h">'; '</span><span class="sy0">,</span> <span class="re0">$allow_transfer</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
        <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;};<span class="es1">\n</span>&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
<span class="re0">$output</span> <span class="sy0">=</span> <span class="kw3">ob_get_contents</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="kw3">ob_end_clean</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;# <span class="es6">%s</span> <span class="es6">%s</span><span class="es1">\n</span><span class="es6">%s</span>&quot;</span><span class="sy0">,</span>
        <span class="kw3">sha1</span><span class="br0">&#40;</span><span class="re0">$output</span><span class="br0">&#41;</span><span class="sy0">,</span>
        <span class="kw3">date</span><span class="br0">&#40;</span><span class="st_h">'Y-m-d H:i:s'</span><span class="br0">&#41;</span><span class="sy0">,</span>
        <span class="re0">$output</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="sy1">?&gt;</span></pre></div></div></div></div></div></div></div>


<p>On the slaves</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="co0">#!/bin/bash</span>
<span class="re2">ts</span>=<span class="sy0">`</span><span class="kw2">date</span> +<span class="sy0">%</span>s<span class="sy0">`</span>
<span class="re2">hostname</span>=<span class="sy0">`</span><span class="kw2">hostname</span><span class="sy0">`</span>
<span class="re2">url</span>=<span class="st0">&quot;https://%CLIENTUSER%:%CLIENTPASSWD%@master.company.com/getconfig.php?hostname=<span class="es3">${hostname}</span>&quot;</span>
&nbsp;
<span class="re2">tmpfile</span>=<span class="sy0">`</span><span class="kw2">mktemp</span> <span class="sy0">/</span>tmp<span class="sy0">/</span>download.XXXX<span class="sy0">`</span>
<span class="re2">newconf</span>=<span class="sy0">`</span><span class="kw2">mktemp</span> <span class="sy0">/</span>tmp<span class="sy0">/</span><span class="co1">${hostname}</span>.named.conf.XXXX<span class="sy0">`</span>
<span class="re2">sysconf</span>=<span class="st0">&quot;/etc/named/master-zones.conf&quot;</span>
&nbsp;
curl <span class="re5">--cacert</span> <span class="sy0">/</span>etc<span class="sy0">/</span>pki<span class="sy0">/</span>tls<span class="sy0">/</span>certs<span class="sy0">/</span>master.crt  <span class="re5">-s</span> <span class="st0">&quot;<span class="es3">${url}</span>&quot;</span> <span class="sy0">&gt;</span> <span class="st0">&quot;<span class="es3">${tmpfile}</span>&quot;</span>
<span class="kw1">if</span> <span class="br0">&#91;</span><span class="br0">&#91;</span> <span class="st0">&quot;$?&quot;</span> <span class="sy0">!</span>= <span class="st0">&quot;0&quot;</span> <span class="br0">&#93;</span><span class="br0">&#93;</span>; <span class="kw1">then</span>
  <span class="kw3">echo</span> <span class="st0">&quot;download failed&quot;</span>
  <span class="kw2">rm</span> <span class="re5">-f</span> <span class="st0">&quot;<span class="es3">${tmpfile}</span>&quot;</span> <span class="st0">&quot;<span class="es3">${newconf}</span>&quot;</span>
  <span class="kw3">exit</span> <span class="nu0">1</span>
<span class="kw1">fi</span>
<span class="kw2">tail</span> -n+<span class="nu0">2</span> <span class="st0">&quot;<span class="es3">${tmpfile}</span>&quot;</span> <span class="sy0">&gt;</span> <span class="st0">&quot;<span class="es3">${newconf}</span>&quot;</span>
&nbsp;
<span class="re2">hash1</span>=<span class="sy0">`</span><span class="kw2">head</span> <span class="re5">-n1</span> <span class="co1">${tmpfile}</span> <span class="sy0">|</span> <span class="kw2">cut</span> <span class="re5">-d</span><span class="st_h">' '</span> -f2<span class="sy0">`</span>
<span class="re2">hash2</span>=<span class="sy0">`</span>sha1sum <span class="co1">${newconf}</span> <span class="sy0">|</span> <span class="kw2">cut</span> <span class="re5">-d</span><span class="st_h">' '</span> -f1<span class="sy0">`</span>
&nbsp;
<span class="kw1">if</span> <span class="br0">&#91;</span><span class="br0">&#91;</span> <span class="st0">&quot;<span class="es3">${hash1}</span>&quot;</span> == <span class="st0">&quot;<span class="es3">${hash2}</span>&quot;</span> <span class="br0">&#93;</span><span class="br0">&#93;</span>; <span class="kw1">then</span>
  <span class="kw2">cmp</span> <span class="re5">-s</span> <span class="co1">${sysconf}</span> <span class="co1">${newconf}</span>
  <span class="kw1">if</span> <span class="br0">&#91;</span><span class="br0">&#91;</span> <span class="st0">&quot;$?&quot;</span> <span class="sy0">!</span>= <span class="st0">&quot;0&quot;</span> <span class="br0">&#93;</span><span class="br0">&#93;</span>; <span class="kw1">then</span>
    <span class="kw2">mv</span> <span class="st0">&quot;<span class="es3">${sysconf}</span>&quot;</span> <span class="st0">&quot;<span class="es3">${sysconf}</span>-<span class="es3">${ts}</span>&quot;</span>
    <span class="kw2">install</span> <span class="re5">-m640</span> <span class="re5">-o</span> root <span class="re5">-g</span> named <span class="st0">&quot;<span class="es3">${newconf}</span>&quot;</span> <span class="st0">&quot;<span class="es3">${sysconf}</span>&quot;</span>
&nbsp;
    named-checkconf <span class="st0">&quot;<span class="es3">${sysconf}</span>&quot;</span>
    <span class="kw1">if</span> <span class="br0">&#91;</span><span class="br0">&#91;</span> <span class="st0">&quot;$?&quot;</span> == <span class="st0">&quot;0&quot;</span> <span class="br0">&#93;</span><span class="br0">&#93;</span>; <span class="kw1">then</span>
      rndc reload
      <span class="kw2">diff</span> <span class="re5">-u</span> <span class="st0">&quot;<span class="es3">${sysconf}</span>-<span class="es3">${ts}</span>&quot;</span> <span class="st0">&quot;<span class="es3">${sysconf}</span>&quot;</span>
    <span class="kw1">else</span>
      <span class="kw3">echo</span> <span class="st0">&quot;named-checkconf failed, aborting update&quot;</span>
      <span class="kw2">mv</span> <span class="st0">&quot;<span class="es3">${sysconf}</span>-<span class="es3">${ts}</span>&quot;</span> <span class="st0">&quot;<span class="es3">${sysconf}</span>&quot;</span>
    <span class="kw1">fi</span>
  <span class="kw1">fi</span>
<span class="kw1">else</span>
  <span class="kw3">echo</span> <span class="st0">&quot;HASH FAIL. aborted.&quot;</span>
  <span class="kw3">echo</span> <span class="st0">&quot;hash1 <span class="es2">$hash1</span>&quot;</span>
  <span class="kw3">echo</span> <span class="st0">&quot;hash2 <span class="es2">$hash2</span>&quot;</span>
<span class="kw1">fi</span>
<span class="kw2">rm</span> <span class="re5">-f</span> <span class="st0">&quot;<span class="es3">${tmpfile}</span>&quot;</span> <span class="st0">&quot;<span class="es3">${newconf}</span>&quot;</span></pre></div></div></div></div></div></div></div>


<p>Include the config file on the slaves, put this in /etc/named.conf</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">include <span class="st0">&quot;/etc/named/master-zones.conf&quot;</span>;</pre></div></div></div></div></div></div></div>




<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="re2">MAILTO</span>=logwatch<span class="sy0">@</span>company.com
<span class="sy0">*/</span><span class="nu0">5</span> <span class="sy0">*</span> <span class="sy0">*</span> <span class="sy0">*</span> <span class="sy0">*</span> root <span class="sy0">/</span>usr<span class="sy0">/</span>local<span class="sy0">/</span>system_scripts<span class="sy0">/</span>update-zones.sh</pre></div></div></div></div></div></div></div>


<p>Hopefully it&#8217;s pretty self-explanatory, if not, leave a comment or drop a mail.</p>


	<a rel='nofollow'  href='http://www.facebook.com/share.php?u=http%3A%2F%2Fmute.nu%2F2011%2Fdns-zone-transfer-scripts-for-powerdns-to-bind%2F&amp;t=DNS%20zone%20transfer%20scripts%20for%20PowerDNS%20to%20BIND' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/facebook.png' title='Facebook' alt='Facebook' class='' /></a>
	<a rel='nofollow'  href='http://twitter.com/home?status=DNS%20zone%20transfer%20scripts%20for%20PowerDNS%20to%20BIND%20-%20http%3A%2F%2Fmute.nu%2F2011%2Fdns-zone-transfer-scripts-for-powerdns-to-bind%2F' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/twitter.png' title='Twitter' alt='Twitter' class='' /></a>
	<a rel='nofollow'  href='http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fmute.nu%2F2011%2Fdns-zone-transfer-scripts-for-powerdns-to-bind%2F&amp;title=DNS%20zone%20transfer%20scripts%20for%20PowerDNS%20to%20BIND&amp;bodytext=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/digg.png' title='Digg' alt='Digg' class='' /></a>
	<a rel='nofollow'  href='http://delicious.com/post?url=http%3A%2F%2Fmute.nu%2F2011%2Fdns-zone-transfer-scripts-for-powerdns-to-bind%2F&amp;title=DNS%20zone%20transfer%20scripts%20for%20PowerDNS%20to%20BIND&amp;notes=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/delicious.png' title='del.icio.us' alt='del.icio.us' class='' /></a>
	<a rel='nofollow'  href='http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fmute.nu%2F2011%2Fdns-zone-transfer-scripts-for-powerdns-to-bind%2F&amp;title=DNS%20zone%20transfer%20scripts%20for%20PowerDNS%20to%20BIND&amp;source=LPE+Random+ramblings+about+things+related+to+the+digital+world&amp;summary=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/linkedin.png' title='LinkedIn' alt='LinkedIn' class='' /></a>
	<a rel='nofollow'  href='http://mute.nu/feed/' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/rss.png' title='RSS' alt='RSS' class='' /></a>
	<a rel='nofollow'  href='http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmute.nu%2F2011%2Fdns-zone-transfer-scripts-for-powerdns-to-bind%2F&amp;title=DNS%20zone%20transfer%20scripts%20for%20PowerDNS%20to%20BIND' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/stumbleupon.png' title='StumbleUpon' alt='StumbleUpon' class='' /></a>
	<a rel='nofollow'  href='http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fmute.nu%2F2011%2Fdns-zone-transfer-scripts-for-powerdns-to-bind%2F&amp;title=DNS%20zone%20transfer%20scripts%20for%20PowerDNS%20to%20BIND&amp;annotation=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/googlebookmark.png' title='Google Bookmarks' alt='Google Bookmarks' class='' /></a>
	<a rel='nofollow'  href='http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fmute.nu%2F2011%2Fdns-zone-transfer-scripts-for-powerdns-to-bind%2F&amp;submitHeadline=DNS%20zone%20transfer%20scripts%20for%20PowerDNS%20to%20BIND&amp;submitSummary=&amp;submitCategory=science&amp;submitAssetType=text' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/yahoobuzz.png' title='Yahoo! Buzz' alt='Yahoo! Buzz' class='' /></a>
	<a rel='nofollow'  href='mailto:?subject=DNS%20zone%20transfer%20scripts%20for%20PowerDNS%20to%20BIND&amp;body=http%3A%2F%2Fmute.nu%2F2011%2Fdns-zone-transfer-scripts-for-powerdns-to-bind%2F' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/email_link.png' title='email' alt='email' class='' /></a>
	<a rel='nofollow'  href='http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fmute.nu%2F2011%2Fdns-zone-transfer-scripts-for-powerdns-to-bind%2F&amp;t=DNS%20zone%20transfer%20scripts%20for%20PowerDNS%20to%20BIND' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/myspace.png' title='MySpace' alt='MySpace' class='' /></a>
	<a rel='nofollow'  href='http://www.printfriendly.com/print?url=http%3A%2F%2Fmute.nu%2F2011%2Fdns-zone-transfer-scripts-for-powerdns-to-bind%2F&amp;partner=sociable' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/pdf.png' title='PDF' alt='PDF' class='' /></a>
	<a rel='nofollow'  href='http://www.printfriendly.com/print?url=http%3A%2F%2Fmute.nu%2F2011%2Fdns-zone-transfer-scripts-for-powerdns-to-bind%2F&amp;partner=sociable' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/printfriendly.png' title='Print' alt='Print' class='' /></a>
	<a rel='nofollow'  href='http://reddit.com/submit?url=http%3A%2F%2Fmute.nu%2F2011%2Fdns-zone-transfer-scripts-for-powerdns-to-bind%2F&amp;title=DNS%20zone%20transfer%20scripts%20for%20PowerDNS%20to%20BIND' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/reddit.png' title='Reddit' alt='Reddit' class='' /></a>
	<a rel='nofollow'  href='http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fmute.nu%2F2011%2Fdns-zone-transfer-scripts-for-powerdns-to-bind%2F&amp;t=DNS%20zone%20transfer%20scripts%20for%20PowerDNS%20to%20BIND&amp;s=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/tumblr.png' title='Tumblr' alt='Tumblr' class='' /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://mute.nu/2011/dns-zone-transfer-scripts-for-powerdns-to-bind/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Snapshot finder on VMWare ESXi 4.1</title>
		<link>http://mute.nu/2011/snapshot-finder-on-vmware-esxi-4-1/</link>
		<comments>http://mute.nu/2011/snapshot-finder-on-vmware-esxi-4-1/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 07:08:43 +0000</pubDate>
		<dc:creator>lpe</dc:creator>
				<category><![CDATA[-]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[esx]]></category>
		<category><![CDATA[snapshot]]></category>
		<category><![CDATA[vmware]]></category>

		<guid isPermaLink="false">http://mute.nu/?p=306</guid>
		<description><![CDATA[A horribly ugly hack to find snapshots on mounted volumes on a VMWare ESXi 4.1 host. Create a script on random host with this #!/bin/sh for i in $&#40;find /vmfs -name &#34;*.vmsn&#34;&#41;;do eval $&#40;echo $i &#124; sed -n &#34;s&#124;^\(.*volumes\)/\([^/]*\)/\(.*\)$&#124;ls -l \1 \&#124; grep \2 \&#124; grep '\\\-&#62;' \&#124; awk '{ printf \$9 }';echo \/\3&#124;p&#34;&#41;; done [...]]]></description>
			<content:encoded><![CDATA[<p>A horribly ugly hack to find snapshots on mounted volumes on a VMWare ESXi 4.1 host.</p>
<p>Create a script on random host with this</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="co0">#!/bin/sh</span>
<span class="kw1">for</span> i <span class="kw1">in</span> $<span class="br0">&#40;</span><span class="kw2">find</span> <span class="sy0">/</span>vmfs <span class="re5">-name</span> <span class="st0">&quot;*.vmsn&quot;</span><span class="br0">&#41;</span>;<span class="kw1">do</span> <span class="kw3">eval</span> $<span class="br0">&#40;</span><span class="kw3">echo</span> <span class="re1">$i</span> <span class="sy0">|</span> <span class="kw2">sed</span> <span class="re5">-n</span> <span class="st0">&quot;s|^\(.*volumes\)/\([^/]*\)/\(.*\)$|ls -l \1 \| grep \2 \| grep '\\\-&gt;' \| awk '{ printf <span class="es1">\$</span>9 }';echo \/\3|p&quot;</span><span class="br0">&#41;</span>; <span class="kw1">done</span></pre></div></div></div></div></div></div></div>


<p>Then just run it with</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="kw2">ssh</span> root<span class="sy0">@</span>esxhost .<span class="sy0">/</span>snapshotfinder.sh</pre></div></div></div></div></div></div></div>


<p>And why this script just doesn&#8217;t do a find / -name &#8220;*.vmsn&#8221; is &#8216;couse the output won&#8217;t include the symlinks name but merely the UID of the volume, and that doesn&#8217;t help very much. And unfortunately ESX comes with a busybox binary of find, which doesn&#8217;t have the -L option.</p>


	<a rel='nofollow'  href='http://www.facebook.com/share.php?u=http%3A%2F%2Fmute.nu%2F2011%2Fsnapshot-finder-on-vmware-esxi-4-1%2F&amp;t=Snapshot%20finder%20on%20VMWare%20ESXi%204.1' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/facebook.png' title='Facebook' alt='Facebook' class='' /></a>
	<a rel='nofollow'  href='http://twitter.com/home?status=Snapshot%20finder%20on%20VMWare%20ESXi%204.1%20-%20http%3A%2F%2Fmute.nu%2F2011%2Fsnapshot-finder-on-vmware-esxi-4-1%2F' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/twitter.png' title='Twitter' alt='Twitter' class='' /></a>
	<a rel='nofollow'  href='http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fmute.nu%2F2011%2Fsnapshot-finder-on-vmware-esxi-4-1%2F&amp;title=Snapshot%20finder%20on%20VMWare%20ESXi%204.1&amp;bodytext=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/digg.png' title='Digg' alt='Digg' class='' /></a>
	<a rel='nofollow'  href='http://delicious.com/post?url=http%3A%2F%2Fmute.nu%2F2011%2Fsnapshot-finder-on-vmware-esxi-4-1%2F&amp;title=Snapshot%20finder%20on%20VMWare%20ESXi%204.1&amp;notes=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/delicious.png' title='del.icio.us' alt='del.icio.us' class='' /></a>
	<a rel='nofollow'  href='http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fmute.nu%2F2011%2Fsnapshot-finder-on-vmware-esxi-4-1%2F&amp;title=Snapshot%20finder%20on%20VMWare%20ESXi%204.1&amp;source=LPE+Random+ramblings+about+things+related+to+the+digital+world&amp;summary=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/linkedin.png' title='LinkedIn' alt='LinkedIn' class='' /></a>
	<a rel='nofollow'  href='http://mute.nu/feed/' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/rss.png' title='RSS' alt='RSS' class='' /></a>
	<a rel='nofollow'  href='http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmute.nu%2F2011%2Fsnapshot-finder-on-vmware-esxi-4-1%2F&amp;title=Snapshot%20finder%20on%20VMWare%20ESXi%204.1' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/stumbleupon.png' title='StumbleUpon' alt='StumbleUpon' class='' /></a>
	<a rel='nofollow'  href='http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fmute.nu%2F2011%2Fsnapshot-finder-on-vmware-esxi-4-1%2F&amp;title=Snapshot%20finder%20on%20VMWare%20ESXi%204.1&amp;annotation=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/googlebookmark.png' title='Google Bookmarks' alt='Google Bookmarks' class='' /></a>
	<a rel='nofollow'  href='http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fmute.nu%2F2011%2Fsnapshot-finder-on-vmware-esxi-4-1%2F&amp;submitHeadline=Snapshot%20finder%20on%20VMWare%20ESXi%204.1&amp;submitSummary=&amp;submitCategory=science&amp;submitAssetType=text' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/yahoobuzz.png' title='Yahoo! Buzz' alt='Yahoo! Buzz' class='' /></a>
	<a rel='nofollow'  href='mailto:?subject=Snapshot%20finder%20on%20VMWare%20ESXi%204.1&amp;body=http%3A%2F%2Fmute.nu%2F2011%2Fsnapshot-finder-on-vmware-esxi-4-1%2F' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/email_link.png' title='email' alt='email' class='' /></a>
	<a rel='nofollow'  href='http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fmute.nu%2F2011%2Fsnapshot-finder-on-vmware-esxi-4-1%2F&amp;t=Snapshot%20finder%20on%20VMWare%20ESXi%204.1' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/myspace.png' title='MySpace' alt='MySpace' class='' /></a>
	<a rel='nofollow'  href='http://www.printfriendly.com/print?url=http%3A%2F%2Fmute.nu%2F2011%2Fsnapshot-finder-on-vmware-esxi-4-1%2F&amp;partner=sociable' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/pdf.png' title='PDF' alt='PDF' class='' /></a>
	<a rel='nofollow'  href='http://www.printfriendly.com/print?url=http%3A%2F%2Fmute.nu%2F2011%2Fsnapshot-finder-on-vmware-esxi-4-1%2F&amp;partner=sociable' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/printfriendly.png' title='Print' alt='Print' class='' /></a>
	<a rel='nofollow'  href='http://reddit.com/submit?url=http%3A%2F%2Fmute.nu%2F2011%2Fsnapshot-finder-on-vmware-esxi-4-1%2F&amp;title=Snapshot%20finder%20on%20VMWare%20ESXi%204.1' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/reddit.png' title='Reddit' alt='Reddit' class='' /></a>
	<a rel='nofollow'  href='http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fmute.nu%2F2011%2Fsnapshot-finder-on-vmware-esxi-4-1%2F&amp;t=Snapshot%20finder%20on%20VMWare%20ESXi%204.1&amp;s=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/tumblr.png' title='Tumblr' alt='Tumblr' class='' /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://mute.nu/2011/snapshot-finder-on-vmware-esxi-4-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to set up OpenVPN between CentOS and Windows</title>
		<link>http://mute.nu/2011/how-to-set-up-openvpn-between-centos-and-windows/</link>
		<comments>http://mute.nu/2011/how-to-set-up-openvpn-between-centos-and-windows/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 09:56:00 +0000</pubDate>
		<dc:creator>lpe</dc:creator>
				<category><![CDATA[-]]></category>

		<guid isPermaLink="false">http://mute.nu/?p=261</guid>
		<description><![CDATA[OpenVPN have a whole armada of neat features to discover, but in this post we&#8217;ll be shedding a light on the most basic one, connect a client to a server. Install OpenVPN on the server (you need EPEL for this, search for EPEL on this site) yum install openvpn Move the scripts to a more [...]]]></description>
			<content:encoded><![CDATA[<p>OpenVPN have a whole armada of neat features to discover, but in this post we&#8217;ll be shedding a light on the most basic one, connect a client to a server.</p>
<p>Install OpenVPN on the server (you need EPEL for this, search for EPEL on this site)</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="kw2">yum install</span> openvpn</pre></div></div></div></div></div></div></div>


<p>Move the scripts to a more proper location.<br />
This step is optional, but as said before, it &#8220;feels&#8221; better&#8221;</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="kw2">cp</span> <span class="re5">-r</span> <span class="sy0">/</span>usr<span class="sy0">/</span>share<span class="sy0">/</span>openvpn<span class="sy0">/</span>easy-rsa<span class="sy0">/</span><span class="nu0">2.0</span><span class="sy0">/</span> <span class="sy0">/</span>etc<span class="sy0">/</span>openvpn<span class="sy0">/</span>ca<span class="sy0">/</span></pre></div></div></div></div></div></div></div>


<p>Edit the file named &#8216;vars&#8217; and edit the variables at the bottom to fit your company and situation</p>
<pre>
export KEY_COUNTRY="SE"
export KEY_PROVINCE="X"
export KEY_CITY="Gavle"
export KEY_ORG="yourcompany"
export KEY_EMAIL="you@yourcompany.com"
</pre>
<p>Source the script and if you want to make sure it worked type &#8216;export&#8217; and check for those variables</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">. vars</pre></div></div></div></div></div></div></div>


<p>Clean up</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">.<span class="sy0">/</span>clean-all</pre></div></div></div></div></div></div></div>


<p>Now generate the necessary certificates</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">.<span class="sy0">/</span>build-ca
.<span class="sy0">/</span>build-key-server servername
.<span class="sy0">/</span>build-key clientname</pre></div></div></div></div></div></div></div>


<p>Edit your configuration (/etc/openvpn/server.conf), an example configuration could look like this,<br />
if you have questions about these options you may browse the official OpenVPN site.</p>
<pre>
port 10001
proto udp
dev tun
ca ca/keys/ca.crt
cert ca/keys/servername.crt
key ca/keys/servername.key  # This file should be kept secret
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3
</pre>
<p>Generate Diffie-Hellman parameters</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">.<span class="sy0">/</span>build-dh</pre></div></div></div></div></div></div></div>


<p>Now start the service</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">service openvpn start</pre></div></div></div></div></div></div></div>


<p>Now on to the Windows side of things, ie. the dark side.</p>
<p>Install OpenVPN from <a href="http://openvpn.org" title="OpenVPN">OpenVPN</a><br />
Copy ca.crt, client.crt and client.key to your config folder.</p>
<p>Create a file called client.ovpn and edit it after this template</p>
<pre>
ca ca.crt
cert client.crt
key client.key
comp-lzo
client
dev tun
proto udp
remote 10.0.0.1 10001 # this beeing the IP to the centosserver as well as port
resolv-retry infinite
nobind
persist-key
persist-tun
verb 3
route-method exe
</pre>
<p>Now rightclick your file and choose &#8220;Start with OpenVPN&#8221; and you should be done.</p>


	<a rel='nofollow'  href='http://www.facebook.com/share.php?u=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-openvpn-between-centos-and-windows%2F&amp;t=How%20to%20set%20up%20OpenVPN%20between%20CentOS%20and%20Windows' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/facebook.png' title='Facebook' alt='Facebook' class='' /></a>
	<a rel='nofollow'  href='http://twitter.com/home?status=How%20to%20set%20up%20OpenVPN%20between%20CentOS%20and%20Windows%20-%20http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-openvpn-between-centos-and-windows%2F' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/twitter.png' title='Twitter' alt='Twitter' class='' /></a>
	<a rel='nofollow'  href='http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-openvpn-between-centos-and-windows%2F&amp;title=How%20to%20set%20up%20OpenVPN%20between%20CentOS%20and%20Windows&amp;bodytext=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/digg.png' title='Digg' alt='Digg' class='' /></a>
	<a rel='nofollow'  href='http://delicious.com/post?url=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-openvpn-between-centos-and-windows%2F&amp;title=How%20to%20set%20up%20OpenVPN%20between%20CentOS%20and%20Windows&amp;notes=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/delicious.png' title='del.icio.us' alt='del.icio.us' class='' /></a>
	<a rel='nofollow'  href='http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-openvpn-between-centos-and-windows%2F&amp;title=How%20to%20set%20up%20OpenVPN%20between%20CentOS%20and%20Windows&amp;source=LPE+Random+ramblings+about+things+related+to+the+digital+world&amp;summary=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/linkedin.png' title='LinkedIn' alt='LinkedIn' class='' /></a>
	<a rel='nofollow'  href='http://mute.nu/feed/' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/rss.png' title='RSS' alt='RSS' class='' /></a>
	<a rel='nofollow'  href='http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-openvpn-between-centos-and-windows%2F&amp;title=How%20to%20set%20up%20OpenVPN%20between%20CentOS%20and%20Windows' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/stumbleupon.png' title='StumbleUpon' alt='StumbleUpon' class='' /></a>
	<a rel='nofollow'  href='http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-openvpn-between-centos-and-windows%2F&amp;title=How%20to%20set%20up%20OpenVPN%20between%20CentOS%20and%20Windows&amp;annotation=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/googlebookmark.png' title='Google Bookmarks' alt='Google Bookmarks' class='' /></a>
	<a rel='nofollow'  href='http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-openvpn-between-centos-and-windows%2F&amp;submitHeadline=How%20to%20set%20up%20OpenVPN%20between%20CentOS%20and%20Windows&amp;submitSummary=&amp;submitCategory=science&amp;submitAssetType=text' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/yahoobuzz.png' title='Yahoo! Buzz' alt='Yahoo! Buzz' class='' /></a>
	<a rel='nofollow'  href='mailto:?subject=How%20to%20set%20up%20OpenVPN%20between%20CentOS%20and%20Windows&amp;body=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-openvpn-between-centos-and-windows%2F' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/email_link.png' title='email' alt='email' class='' /></a>
	<a rel='nofollow'  href='http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-openvpn-between-centos-and-windows%2F&amp;t=How%20to%20set%20up%20OpenVPN%20between%20CentOS%20and%20Windows' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/myspace.png' title='MySpace' alt='MySpace' class='' /></a>
	<a rel='nofollow'  href='http://www.printfriendly.com/print?url=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-openvpn-between-centos-and-windows%2F&amp;partner=sociable' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/pdf.png' title='PDF' alt='PDF' class='' /></a>
	<a rel='nofollow'  href='http://www.printfriendly.com/print?url=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-openvpn-between-centos-and-windows%2F&amp;partner=sociable' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/printfriendly.png' title='Print' alt='Print' class='' /></a>
	<a rel='nofollow'  href='http://reddit.com/submit?url=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-openvpn-between-centos-and-windows%2F&amp;title=How%20to%20set%20up%20OpenVPN%20between%20CentOS%20and%20Windows' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/reddit.png' title='Reddit' alt='Reddit' class='' /></a>
	<a rel='nofollow'  href='http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-openvpn-between-centos-and-windows%2F&amp;t=How%20to%20set%20up%20OpenVPN%20between%20CentOS%20and%20Windows&amp;s=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/tumblr.png' title='Tumblr' alt='Tumblr' class='' /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://mute.nu/2011/how-to-set-up-openvpn-between-centos-and-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What is EPEL and how to use it on CentOS</title>
		<link>http://mute.nu/2011/what-is-epel-and-how-to-use-it-on-centos/</link>
		<comments>http://mute.nu/2011/what-is-epel-and-how-to-use-it-on-centos/#comments</comments>
		<pubDate>Wed, 14 Sep 2011 14:06:31 +0000</pubDate>
		<dc:creator>lpe</dc:creator>
				<category><![CDATA[-]]></category>

		<guid isPermaLink="false">http://mute.nu/?p=251</guid>
		<description><![CDATA[In short, EPEL is an extra repository outside of CentOS and Redhats regular repositories. It&#8217;s mostly based on Fedora packages and works for both CentOS, Redhat and Scientific Linux. It&#8217;s extremely simple to use, merely one command. Pick your correct architecture and version from the EPEL website (for example, http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm) and then type this and [...]]]></description>
			<content:encoded><![CDATA[<p>In short, EPEL is an extra repository outside of CentOS and Redhats regular repositories.<br />
It&#8217;s mostly based on Fedora packages and works for both CentOS, Redhat and Scientific Linux.</p>
<p>It&#8217;s extremely simple to use, merely one command.<br />
Pick your correct architecture and version from the <a href="http://fedoraproject.org/wiki/EPEL" title="EPEL website" target="_blank">EPEL website</a> (for example, http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm) and then type this and you&#8217;re done:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="kw2">yum install</span> <span class="re5">--nogpg</span> http:<span class="sy0">//</span>download.fedoraproject.org<span class="sy0">/</span>pub<span class="sy0">/</span>epel<span class="sy0">/</span><span class="nu0">6</span><span class="sy0">/</span>i386<span class="sy0">/</span>epel-release-<span class="nu0">6</span>-<span class="nu0">5</span>.noarch.rpm</pre></div></div></div></div></div></div></div>




	<a rel='nofollow'  href='http://www.facebook.com/share.php?u=http%3A%2F%2Fmute.nu%2F2011%2Fwhat-is-epel-and-how-to-use-it-on-centos%2F&amp;t=What%20is%20EPEL%20and%20how%20to%20use%20it%20on%20CentOS' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/facebook.png' title='Facebook' alt='Facebook' class='' /></a>
	<a rel='nofollow'  href='http://twitter.com/home?status=What%20is%20EPEL%20and%20how%20to%20use%20it%20on%20CentOS%20-%20http%3A%2F%2Fmute.nu%2F2011%2Fwhat-is-epel-and-how-to-use-it-on-centos%2F' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/twitter.png' title='Twitter' alt='Twitter' class='' /></a>
	<a rel='nofollow'  href='http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fmute.nu%2F2011%2Fwhat-is-epel-and-how-to-use-it-on-centos%2F&amp;title=What%20is%20EPEL%20and%20how%20to%20use%20it%20on%20CentOS&amp;bodytext=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/digg.png' title='Digg' alt='Digg' class='' /></a>
	<a rel='nofollow'  href='http://delicious.com/post?url=http%3A%2F%2Fmute.nu%2F2011%2Fwhat-is-epel-and-how-to-use-it-on-centos%2F&amp;title=What%20is%20EPEL%20and%20how%20to%20use%20it%20on%20CentOS&amp;notes=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/delicious.png' title='del.icio.us' alt='del.icio.us' class='' /></a>
	<a rel='nofollow'  href='http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fmute.nu%2F2011%2Fwhat-is-epel-and-how-to-use-it-on-centos%2F&amp;title=What%20is%20EPEL%20and%20how%20to%20use%20it%20on%20CentOS&amp;source=LPE+Random+ramblings+about+things+related+to+the+digital+world&amp;summary=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/linkedin.png' title='LinkedIn' alt='LinkedIn' class='' /></a>
	<a rel='nofollow'  href='http://mute.nu/feed/' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/rss.png' title='RSS' alt='RSS' class='' /></a>
	<a rel='nofollow'  href='http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmute.nu%2F2011%2Fwhat-is-epel-and-how-to-use-it-on-centos%2F&amp;title=What%20is%20EPEL%20and%20how%20to%20use%20it%20on%20CentOS' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/stumbleupon.png' title='StumbleUpon' alt='StumbleUpon' class='' /></a>
	<a rel='nofollow'  href='http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fmute.nu%2F2011%2Fwhat-is-epel-and-how-to-use-it-on-centos%2F&amp;title=What%20is%20EPEL%20and%20how%20to%20use%20it%20on%20CentOS&amp;annotation=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/googlebookmark.png' title='Google Bookmarks' alt='Google Bookmarks' class='' /></a>
	<a rel='nofollow'  href='http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fmute.nu%2F2011%2Fwhat-is-epel-and-how-to-use-it-on-centos%2F&amp;submitHeadline=What%20is%20EPEL%20and%20how%20to%20use%20it%20on%20CentOS&amp;submitSummary=&amp;submitCategory=science&amp;submitAssetType=text' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/yahoobuzz.png' title='Yahoo! Buzz' alt='Yahoo! Buzz' class='' /></a>
	<a rel='nofollow'  href='mailto:?subject=What%20is%20EPEL%20and%20how%20to%20use%20it%20on%20CentOS&amp;body=http%3A%2F%2Fmute.nu%2F2011%2Fwhat-is-epel-and-how-to-use-it-on-centos%2F' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/email_link.png' title='email' alt='email' class='' /></a>
	<a rel='nofollow'  href='http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fmute.nu%2F2011%2Fwhat-is-epel-and-how-to-use-it-on-centos%2F&amp;t=What%20is%20EPEL%20and%20how%20to%20use%20it%20on%20CentOS' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/myspace.png' title='MySpace' alt='MySpace' class='' /></a>
	<a rel='nofollow'  href='http://www.printfriendly.com/print?url=http%3A%2F%2Fmute.nu%2F2011%2Fwhat-is-epel-and-how-to-use-it-on-centos%2F&amp;partner=sociable' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/pdf.png' title='PDF' alt='PDF' class='' /></a>
	<a rel='nofollow'  href='http://www.printfriendly.com/print?url=http%3A%2F%2Fmute.nu%2F2011%2Fwhat-is-epel-and-how-to-use-it-on-centos%2F&amp;partner=sociable' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/printfriendly.png' title='Print' alt='Print' class='' /></a>
	<a rel='nofollow'  href='http://reddit.com/submit?url=http%3A%2F%2Fmute.nu%2F2011%2Fwhat-is-epel-and-how-to-use-it-on-centos%2F&amp;title=What%20is%20EPEL%20and%20how%20to%20use%20it%20on%20CentOS' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/reddit.png' title='Reddit' alt='Reddit' class='' /></a>
	<a rel='nofollow'  href='http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fmute.nu%2F2011%2Fwhat-is-epel-and-how-to-use-it-on-centos%2F&amp;t=What%20is%20EPEL%20and%20how%20to%20use%20it%20on%20CentOS&amp;s=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/tumblr.png' title='Tumblr' alt='Tumblr' class='' /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://mute.nu/2011/what-is-epel-and-how-to-use-it-on-centos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to set up Host-to-Host VPN using Openswan/IPSec on CentOS</title>
		<link>http://mute.nu/2011/how-to-set-up-host-to-host-vpn-using-openswan-ipsec-on-centos/</link>
		<comments>http://mute.nu/2011/how-to-set-up-host-to-host-vpn-using-openswan-ipsec-on-centos/#comments</comments>
		<pubDate>Wed, 14 Sep 2011 13:59:12 +0000</pubDate>
		<dc:creator>lpe</dc:creator>
				<category><![CDATA[-]]></category>

		<guid isPermaLink="false">http://mute.nu/?p=247</guid>
		<description><![CDATA[A very short tutorial on how to set up an IPSec VPN between two hosts to make the traffic encrypted. As usual, my weapon of choice would be CentOS with some help from EPEL. (Having trouble understanding what EPEL is or how to configure it? See]]></description>
			<content:encoded><![CDATA[<p>A very short tutorial on how to set up an IPSec VPN between two hosts to make the traffic encrypted.<br />
As usual, my weapon of choice would be CentOS with some help from EPEL.<br />
(Having trouble understanding what EPEL is or how to configure it? See <a href="<a href="http://mute.nu/2011/what-is-epel-and-how-to-use-it-on-centos/" title="http://mute.nu/2011/what-is-epel-and-how-to-use-it-on-centos/">http://mute.nu/2011/what-is-epel-and-how-to-use-it-on-centos/</a>)</p>
<p>Some prerequisites are that both machines are either on the same subnet, have public routeable addresses or is behind firewalls with IPSec Passthrough.</p>
<p>Basically, Openswan works in a &#8220;left&#8221; and &#8220;right&#8221; manner, meaning that one machine is called &#8220;left&#8221; and the other &#8220;right&#8221;.<br />
The machine we&#8217;ll start configuring is &#8220;left&#8221; in this guide.</p>
<p>At first, install the necessary packages on both machines.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="kw2">yum install</span> openswan nss-tools</pre></div></div></div></div></div></div></div>


<p>We&#8217;ll be configuring this without passwords for simplicity, so we remove the old database files and regenerate new ones.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="kw3">cd</span> <span class="sy0">/</span>etc<span class="sy0">/</span>ipsec.d<span class="sy0">/</span>
<span class="kw2">mkdir</span> db_old
<span class="kw2">mv</span> <span class="sy0">*</span>.db db_old<span class="sy0">/</span>
certutil <span class="re5">-N</span> <span class="re5">-d</span> .</pre></div></div></div></div></div></div></div>


<p>Now create the necessary keys on both machines but make sure to change the hostname to the proper hostname of the server.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">ipsec newhostkey <span class="re5">--output</span> <span class="sy0">/</span>etc<span class="sy0">/</span>ipsec.d<span class="sy0">/</span>HOSTNAME.secrets <span class="re5">--configdir</span> <span class="sy0">/</span>etc<span class="sy0">/</span>ipsec.d<span class="sy0">/</span> <span class="re5">--verbose</span></pre></div></div></div></div></div></div></div>


<p>Now remove the comment on the last line of /etc/ipsec.conf so it includes /etc/ipsec.d/*.conf on both servers.</p>
<p>Now create a file on your left server called HOSTNAME.conf after this template and edit the fields for your setup.<br />
Type in ipsec showhostkey &#8211;left and copy that key to leftrsasigkey=<br />
as well as ipsec showhostkey &#8211;right on your other server and copy that key to rightsasigkey=.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">conn host-to-host
    <span class="re2">left</span>=10.0.0.11
    <span class="re2">leftid</span>=<span class="sy0">@</span>server1
    <span class="re2">leftrsasigkey</span>=0dsaA2...
    <span class="re2">leftnexthop</span>=<span class="sy0">%</span>defaultroute
    <span class="re2">right</span>=10.0.0.12
    <span class="re2">rightid</span>=<span class="sy0">@</span>server22
    <span class="re2">rightrsasigkey</span>=0sAQOuP...
    <span class="re2">rightnexthop</span>=<span class="sy0">%</span>defaultroute
    <span class="re2">auto</span>=add</pre></div></div></div></div></div></div></div>


<p>Copy that file to the other server and rename it.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="kw2">scp</span> <span class="sy0">/</span>etc<span class="sy0">/</span>ipsec.d<span class="sy0">/</span>server1.conf root<span class="sy0">@</span>10.0.0.12:<span class="sy0">/</span>etc<span class="sy0">/</span>ipsec.d<span class="sy0">/</span>server2.conf</pre></div></div></div></div></div></div></div>


<p>Now start it.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">service ipsec start</pre></div></div></div></div></div></div></div>


<p>If you encounter any errors they will most probably be printed directly to you or you can have a see in /var/log/messages</p>
<p>If you want to test your connection out, try a ping from server1 to server2 and capture it using tcpdump on server2.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">tcpdump <span class="re5">-ni</span> eth0 <span class="re5">-X</span> <span class="re5">-v</span> host 10.0.0.12</pre></div></div></div></div></div></div></div>


<p>You should now see every other packet using the ESP protocol and the rest TCP.<br />
Remember, you&#8217;ll only see the encrypted outgoing packets.</p>
<p>If you want it to start on boot you either change &#8220;auto=add&#8221; to &#8220;auto=start&#8221; in HOSTNAME.conf or type in &#8220;chkconfig ipsec on&#8221;</p>


	<a rel='nofollow'  href='http://www.facebook.com/share.php?u=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-host-to-host-vpn-using-openswan-ipsec-on-centos%2F&amp;t=How%20to%20set%20up%20Host-to-Host%20VPN%20using%20Openswan%2FIPSec%20on%20CentOS' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/facebook.png' title='Facebook' alt='Facebook' class='' /></a>
	<a rel='nofollow'  href='http://twitter.com/home?status=How%20to%20set%20up%20Host-to-Host%20VPN%20using%20Openswan%2FIPSec%20on%20CentOS%20-%20http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-host-to-host-vpn-using-openswan-ipsec-on-centos%2F' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/twitter.png' title='Twitter' alt='Twitter' class='' /></a>
	<a rel='nofollow'  href='http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-host-to-host-vpn-using-openswan-ipsec-on-centos%2F&amp;title=How%20to%20set%20up%20Host-to-Host%20VPN%20using%20Openswan%2FIPSec%20on%20CentOS&amp;bodytext=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/digg.png' title='Digg' alt='Digg' class='' /></a>
	<a rel='nofollow'  href='http://delicious.com/post?url=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-host-to-host-vpn-using-openswan-ipsec-on-centos%2F&amp;title=How%20to%20set%20up%20Host-to-Host%20VPN%20using%20Openswan%2FIPSec%20on%20CentOS&amp;notes=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/delicious.png' title='del.icio.us' alt='del.icio.us' class='' /></a>
	<a rel='nofollow'  href='http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-host-to-host-vpn-using-openswan-ipsec-on-centos%2F&amp;title=How%20to%20set%20up%20Host-to-Host%20VPN%20using%20Openswan%2FIPSec%20on%20CentOS&amp;source=LPE+Random+ramblings+about+things+related+to+the+digital+world&amp;summary=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/linkedin.png' title='LinkedIn' alt='LinkedIn' class='' /></a>
	<a rel='nofollow'  href='http://mute.nu/feed/' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/rss.png' title='RSS' alt='RSS' class='' /></a>
	<a rel='nofollow'  href='http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-host-to-host-vpn-using-openswan-ipsec-on-centos%2F&amp;title=How%20to%20set%20up%20Host-to-Host%20VPN%20using%20Openswan%2FIPSec%20on%20CentOS' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/stumbleupon.png' title='StumbleUpon' alt='StumbleUpon' class='' /></a>
	<a rel='nofollow'  href='http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-host-to-host-vpn-using-openswan-ipsec-on-centos%2F&amp;title=How%20to%20set%20up%20Host-to-Host%20VPN%20using%20Openswan%2FIPSec%20on%20CentOS&amp;annotation=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/googlebookmark.png' title='Google Bookmarks' alt='Google Bookmarks' class='' /></a>
	<a rel='nofollow'  href='http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-host-to-host-vpn-using-openswan-ipsec-on-centos%2F&amp;submitHeadline=How%20to%20set%20up%20Host-to-Host%20VPN%20using%20Openswan%2FIPSec%20on%20CentOS&amp;submitSummary=&amp;submitCategory=science&amp;submitAssetType=text' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/yahoobuzz.png' title='Yahoo! Buzz' alt='Yahoo! Buzz' class='' /></a>
	<a rel='nofollow'  href='mailto:?subject=How%20to%20set%20up%20Host-to-Host%20VPN%20using%20Openswan%2FIPSec%20on%20CentOS&amp;body=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-host-to-host-vpn-using-openswan-ipsec-on-centos%2F' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/email_link.png' title='email' alt='email' class='' /></a>
	<a rel='nofollow'  href='http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-host-to-host-vpn-using-openswan-ipsec-on-centos%2F&amp;t=How%20to%20set%20up%20Host-to-Host%20VPN%20using%20Openswan%2FIPSec%20on%20CentOS' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/myspace.png' title='MySpace' alt='MySpace' class='' /></a>
	<a rel='nofollow'  href='http://www.printfriendly.com/print?url=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-host-to-host-vpn-using-openswan-ipsec-on-centos%2F&amp;partner=sociable' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/pdf.png' title='PDF' alt='PDF' class='' /></a>
	<a rel='nofollow'  href='http://www.printfriendly.com/print?url=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-host-to-host-vpn-using-openswan-ipsec-on-centos%2F&amp;partner=sociable' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/printfriendly.png' title='Print' alt='Print' class='' /></a>
	<a rel='nofollow'  href='http://reddit.com/submit?url=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-host-to-host-vpn-using-openswan-ipsec-on-centos%2F&amp;title=How%20to%20set%20up%20Host-to-Host%20VPN%20using%20Openswan%2FIPSec%20on%20CentOS' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/reddit.png' title='Reddit' alt='Reddit' class='' /></a>
	<a rel='nofollow'  href='http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fmute.nu%2F2011%2Fhow-to-set-up-host-to-host-vpn-using-openswan-ipsec-on-centos%2F&amp;t=How%20to%20set%20up%20Host-to-Host%20VPN%20using%20Openswan%2FIPSec%20on%20CentOS&amp;s=' ><img src='http://mute.nu/wp-content/plugins/one-social/images/default/16/tumblr.png' title='Tumblr' alt='Tumblr' class='' /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://mute.nu/2011/how-to-set-up-host-to-host-vpn-using-openswan-ipsec-on-centos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

