<?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>bernhard.hensler.net &#187; software</title>
	<atom:link href="http://bernhard.hensler.net/blog/tag/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://bernhard.hensler.net/blog</link>
	<description></description>
	<lastBuildDate>Mon, 28 Jun 2010 13:52:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Connections bootcamp in Littleton / Boston</title>
		<link>http://bernhard.hensler.net/blog/connections-bootcamp-in-littleton-boston/</link>
		<comments>http://bernhard.hensler.net/blog/connections-bootcamp-in-littleton-boston/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 23:20:46 +0000</pubDate>
		<dc:creator>bernhard</dc:creator>
				<category><![CDATA[container]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[travel]]></category>

		<guid isPermaLink="false">http://bernhard.hensler.net/blog/?p=1740</guid>
		<description><![CDATA[had the privilege to join a bootcamp in Littleton, Boston covering version 2.5 of Lotus Connections; take a look at the happy attendees &#8211; truly members of a an IT (intelligent Technology) community, as this technology is supposed to be &#8230;

]]></description>
			<content:encoded><![CDATA[<p>had the privilege to join a bootcamp in Littleton, Boston covering version 2.5 of Lotus Connections; take a look at the happy attendees &#8211; truly members of a an IT (intelligent Technology) community, as this technology is supposed to be &#8230;<br />

<a href="http://bernhard.hensler.net/blog/wp-content/gallery/2010/boston/boston+2010+096.jpg" title="rancesco" rel="wp-prettyPhoto[singlepic4800]" >
	<img class="ngg-singlepic" src="http://bernhard.hensler.net/blog/wp-content/gallery/cache/4800__320x240_boston+2010+096.jpg" alt="boston+2010+096" title="boston+2010+096" />
</a>
<br />
<span id="more-1740"></span><br />

<div class="ngg-galleryoverview" id="ngg-gallery-91-1740">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-4790" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/2010/boston/20100212_0004.jpg" title=" " rel="wp-prettyPhoto[set_91]">
								<img title="20100212_0004" alt="20100212_0004" src="http://bernhard.hensler.net/blog/wp-content/gallery/2010/boston/thumbs/thumbs_20100212_0004.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-4791" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/2010/boston/20100212_0009.jpg" title=" " rel="wp-prettyPhoto[set_91]">
								<img title="20100212_0009" alt="20100212_0009" src="http://bernhard.hensler.net/blog/wp-content/gallery/2010/boston/thumbs/thumbs_20100212_0009.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-4792" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/2010/boston/20100212_0010.jpg" title=" " rel="wp-prettyPhoto[set_91]">
								<img title="20100212_0010" alt="20100212_0010" src="http://bernhard.hensler.net/blog/wp-content/gallery/2010/boston/thumbs/thumbs_20100212_0010.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-4793" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/2010/boston/20100212_0011.jpg" title=" " rel="wp-prettyPhoto[set_91]">
								<img title="20100212_0011" alt="20100212_0011" src="http://bernhard.hensler.net/blog/wp-content/gallery/2010/boston/thumbs/thumbs_20100212_0011.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-4794" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/2010/boston/20100212_0018.jpg" title=" " rel="wp-prettyPhoto[set_91]">
								<img title="20100212_0018" alt="20100212_0018" src="http://bernhard.hensler.net/blog/wp-content/gallery/2010/boston/thumbs/thumbs_20100212_0018.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-4795" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/2010/boston/20100212_0020.jpg" title=" " rel="wp-prettyPhoto[set_91]">
								<img title="20100212_0020" alt="20100212_0020" src="http://bernhard.hensler.net/blog/wp-content/gallery/2010/boston/thumbs/thumbs_20100212_0020.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-4796" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/2010/boston/20100212_0021.jpg" title=" " rel="wp-prettyPhoto[set_91]">
								<img title="20100212_0021" alt="20100212_0021" src="http://bernhard.hensler.net/blog/wp-content/gallery/2010/boston/thumbs/thumbs_20100212_0021.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-4797" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/2010/boston/20100212_0023.jpg" title=" " rel="wp-prettyPhoto[set_91]">
								<img title="20100212_0023" alt="20100212_0023" src="http://bernhard.hensler.net/blog/wp-content/gallery/2010/boston/thumbs/thumbs_20100212_0023.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-4798" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/2010/boston/20100212_0029.jpg" title=" " rel="wp-prettyPhoto[set_91]">
								<img title="20100212_0029" alt="20100212_0029" src="http://bernhard.hensler.net/blog/wp-content/gallery/2010/boston/thumbs/thumbs_20100212_0029.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-4799" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/2010/boston/20100212_0030.jpg" title=" " rel="wp-prettyPhoto[set_91]">
								<img title="20100212_0030" alt="20100212_0030" src="http://bernhard.hensler.net/blog/wp-content/gallery/2010/boston/thumbs/thumbs_20100212_0030.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-4800" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/2010/boston/boston+2010+096.jpg" title="rancesco" rel="wp-prettyPhoto[set_91]" >
								<img title="boston+2010+096" alt="boston+2010+096" src="http://bernhard.hensler.net/blog/wp-content/gallery/2010/boston/thumbs/thumbs_boston+2010+096.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>

<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://bernhard.hensler.net/blog/connections-bootcamp-in-littleton-boston/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Athens</title>
		<link>http://bernhard.hensler.net/blog/athens/</link>
		<comments>http://bernhard.hensler.net/blog/athens/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 10:52:48 +0000</pubDate>
		<dc:creator>bernhard</dc:creator>
				<category><![CDATA[container]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[travel]]></category>
		<category><![CDATA[WebSphere]]></category>

		<guid isPermaLink="false">http://bernhard.hensler.net/blog/?p=1701</guid>
		<description><![CDATA[
joining a critsit in a large bank in Athens &#8211; WebSphere Portal 5.1, WCM, TAM ,TDS, TDI, ESB, db2, etc. Massive performance issues caused by inadequately tuning the environment, lack of system resources &#8211; basically returned to default values following tuning guides. Primary intention was to stabilize environment, as well as providing mid- to long [...]]]></description>
			<content:encoded><![CDATA[<div  style="text-align: left;"  class="xmlgmdiv" id="xmlgmdiv_41"><iframe class="xmlgm" id="xmlgm_41"src="http://bernhard.hensler.net/blog/wp-content/plugins/xml-google-maps/xmlgooglemaps_show.php?myid=41" style="border: 0px; width: 360px; height: 500px;" name="My_XML_Google_Maps" frameborder="0"></iframe></div>
<p>joining a critsit in a large bank in Athens &#8211; WebSphere Portal 5.1, WCM, TAM ,TDS, TDI, ESB, db2, etc. Massive performance issues caused by inadequately tuning the environment, lack of system resources &#8211; basically returned to default values following tuning guides. Primary intention was to stabilize environment, as well as providing mid- to long term recommendations about how to manage the infrastructure and systems / applications.<span id="more-1701"></span></p>
<p>Athens is a beast with traffic collapsing &#8211; would go mad living here. Akropolis area (Plaka) very touristic (what did I expect), but nice to switch off from a busy day (apart from all the little gangsters trying to get hold of your money).</p>

<div class="ngg-galleryoverview" id="ngg-gallery-73-1701">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-3490" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/athens/img_0165.jpg" title=" " rel="wp-prettyPhoto[set_73]">
								<img title="img_0165" alt="img_0165" src="http://bernhard.hensler.net/blog/wp-content/gallery/athens/thumbs/thumbs_img_0165.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-3491" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/athens/img_0167.jpg" title=" " rel="wp-prettyPhoto[set_73]">
								<img title="img_0167" alt="img_0167" src="http://bernhard.hensler.net/blog/wp-content/gallery/athens/thumbs/thumbs_img_0167.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-3492" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/athens/img_0168.jpg" title=" " rel="wp-prettyPhoto[set_73]">
								<img title="img_0168" alt="img_0168" src="http://bernhard.hensler.net/blog/wp-content/gallery/athens/thumbs/thumbs_img_0168.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-3493" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/athens/img_0173.jpg" title=" " rel="wp-prettyPhoto[set_73]">
								<img title="img_0173" alt="img_0173" src="http://bernhard.hensler.net/blog/wp-content/gallery/athens/thumbs/thumbs_img_0173.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-3494" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/athens/img_0175.jpg" title=" " rel="wp-prettyPhoto[set_73]">
								<img title="img_0175" alt="img_0175" src="http://bernhard.hensler.net/blog/wp-content/gallery/athens/thumbs/thumbs_img_0175.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-3495" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/athens/img_0176.jpg" title=" " rel="wp-prettyPhoto[set_73]">
								<img title="img_0176" alt="img_0176" src="http://bernhard.hensler.net/blog/wp-content/gallery/athens/thumbs/thumbs_img_0176.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-3496" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/athens/img_0179.jpg" title=" " rel="wp-prettyPhoto[set_73]">
								<img title="img_0179" alt="img_0179" src="http://bernhard.hensler.net/blog/wp-content/gallery/athens/thumbs/thumbs_img_0179.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-3497" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/athens/img_0182.jpg" title=" " rel="wp-prettyPhoto[set_73]">
								<img title="img_0182" alt="img_0182" src="http://bernhard.hensler.net/blog/wp-content/gallery/athens/thumbs/thumbs_img_0182.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-3498" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/athens/img_0185.jpg" title=" " rel="wp-prettyPhoto[set_73]">
								<img title="img_0185" alt="img_0185" src="http://bernhard.hensler.net/blog/wp-content/gallery/athens/thumbs/thumbs_img_0185.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


]]></content:encoded>
			<wfw:commentRss>http://bernhard.hensler.net/blog/athens/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>steps to visualize HTTP server logging &#8211; part II</title>
		<link>http://bernhard.hensler.net/blog/steps-to-visualize-http-server-logging-part-ii/</link>
		<comments>http://bernhard.hensler.net/blog/steps-to-visualize-http-server-logging-part-ii/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 15:26:24 +0000</pubDate>
		<dc:creator>bernhard</dc:creator>
				<category><![CDATA[container]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[WWW]]></category>

		<guid isPermaLink="false">http://bernhard.hensler.net/blog/?p=1577</guid>
		<description><![CDATA[gnuplot 2d
edit /etc/apache2/mod_log_config.conf and add a new logformat (plots) &#8211; (&#8220;mod_log_config.conf&#8221; is referenced by &#8220;httpd.conf&#8221;)
LogFormat &#8220;%h %l %u %t \&#8221;%r\&#8221; %&#62;s %b \ \&#8221;%{Referer}i\&#8221; \&#8221;%{User-Agent}i\&#8221;" combined
 LogFormat &#8220;%h %{%d.%m.%Y:%H:%M:%S}t %D %U&#8221; plots
The characteristics of the &#8220;%&#8221; directives are:
%&#8230;h	Remote host
%&#8230;{format}t time &#38; date
%&#8230;D	 time taken to serve the request, in microseconds.
%&#8230;U	 URL path requested

Add another &#8220;customlog&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p><strong>gnuplot 2d</strong></p>
<p>edit /etc/apache2/mod_log_config.conf and add a new logformat (plots) &#8211; (&#8220;mod_log_config.conf&#8221; is referenced by &#8220;httpd.conf&#8221;)</p>
<blockquote><p>LogFormat &#8220;%h %l %u %t \&#8221;%r\&#8221; %&gt;s %b \ \&#8221;%{Referer}i\&#8221; \&#8221;%{User-Agent}i\&#8221;" combined<br />
<span style="color: #ff0000;"> LogFormat &#8220;%h %{%d.%m.%Y:%H:%M:%S}t %D %U&#8221; plots</span></p></blockquote>
<p>The characteristics of the &#8220;%&#8221; directives are:</p>
<p>%&#8230;h	Remote host<br />
%&#8230;{format}t time &amp; date<br />
%&#8230;D	 time taken to serve the request, in microseconds.<br />
%&#8230;U	 URL path requested</p>
<p><span id="more-1577"></span></p>
<p>Add another &#8220;customlog&#8221; directive to your &#8220;virtualhost&#8221; section in &#8220;httpd.conf&#8221;:</p>
<blockquote><p>DocumentRoot /home/h/hensler.net/public_html/bernhard/<br />
ServerName bernhard.hensler.net<br />
IndexOptions<br />
DirectoryIndex index.htm index.html index.shtml start.htm start.html start.shtm index.php</p>
<p>CustomLog &#8220;/usr/local/visas/logfiles/hensler.net/%Y/%m/%d/access_log&#8221; vhost_combined<br />
<span style="color: #ff0000;"> CustomLog &#8220;/usr/local/visas/logfiles/hensler.net/bernhard.access_log&#8221; plots</span></p></blockquote>
<p>Concatenate logs from all virtual hosts e.g.: cat hensler.access_log niko.access_log bernhard.access_log max.access_log &gt; plot_log <em>(sample line: 66.249.111.111 30.08.2009:14:15:17 4372853 /blog/)</em> and start gnuplot from the command line:</p>
<p><strong>$ gnuplot</strong></p>
<blockquote><p>reset<br />
set terminal png small color<br />
set output &#8220;2dplot.png&#8221;<br />
set title &#8220;average response time&#8221;</p>
<p>set style data points<br />
set pointsize 1<br />
set grid</p>
<p>set xlabel &#8220;time&#8221;<br />
set timefmt &#8220;%d.%m.%Y:%H:%M:%S&#8221;<br />
set format x &#8220;%H:%M\n%d/%b&#8221;<br />
set xdata time<br />
set xrange [ "30.08.2009:00:00" : "30.08.2009:23:59" ]</p>
<p>set ylabel &#8220;response time&#8221;<br />
set yrange [ 0 : 10000 ]</p>
<p>plot &#8220;/usr/local/visas/logfiles/hensler.net/plot_log&#8221; using 2:3 title &#8220;2d&#8221;</p></blockquote>

<a href="http://bernhard.hensler.net/blog/wp-content/gallery/it/2dplot.png" title="" rel="wp-prettyPhoto[singlepic3451]">
	<img class="ngg-singlepic" src="http://bernhard.hensler.net/blog/wp-content/gallery/cache/3451__474x400_2dplot.png" alt="2dplot" title="2dplot" />
</a>

<p><strong>gnuplot 3d</strong></p>
<p>Then read this excellent <a href="http://www.oreillynet.com/pub/a/sysadmin/2007/02/02/3d-logfile-visualization.html?page=1" class="liexternal">article</a> about &#8220;A New Visualization for Web Server Logs&#8221; and create a perl script:</p>
<blockquote><p>#<br />
# prepare-for-gnuplot.pl: convert access log files to gnuplot input<br />
# Raju Varghese. 2007-02-03</p>
<p>use strict;</p>
<p>my $tempFilename    = &#8220;./tmp/temp.dat&#8221;;<br />
my $ipListFilename  = &#8220;./tmp/iplist.dat&#8221;;<br />
my $urlListFilename = &#8220;./tmp/urllist.dat&#8221;;</p>
<p>my (%ipList, %urlList);</p>
<p>sub ip2int {<br />
my ($ip) = @_;<br />
my @ipOctet = split (/\./, $ip);<br />
my $n = 0;<br />
foreach (@ipOctet) {<br />
$n = $n*256 + $_;<br />
}<br />
return $n;<br />
}</p>
<p># prepare temp file to store log lines temporarily<br />
open (TEMP, &#8220;&gt;$tempFilename&#8221;);</p>
<p># reads log lines from stdin or files specified on command line</p>
<p>while (&lt;&gt;) {<br />
chomp;<br />
my ($ip, $time, $D, $url, $sc) = split;<br />
$time =~ s/\[//;<br />
next if ($url =~ /(gif|jpg|png|js|css)$/);<br />
print TEMP "$ip $time $D $url $sc\n";<br />
$ipList{$ip}++;<br />
$urlList{$url}++;<br />
}</p>
<p># process IP addresses</p>
<p>my @sortedIpList = sort {ip2int($a) &lt;=&gt; ip2int($b)} keys %ipList;<br />
my $n = 0;<br />
open (IPLIST, "&gt;$ipListFilename");<br />
foreach (@sortedIpList) {<br />
++$n;<br />
print IPLIST "$n $ipList{$_} $_\n";<br />
$ipList{$_} = $n;<br />
}<br />
close (IPLIST);</p>
<p># process URLs</p>
<p>my @sortedUrlList = sort {$urlList {$b} &lt;=&gt; $urlList {$a}} keys %urlList;<br />
$n = 0;<br />
open (URLLIST, "&gt;$urlListFilename");<br />
foreach (@sortedUrlList) {<br />
++$n;<br />
print URLLIST "$n $urlList{$_} $_\n";<br />
$urlList{$_} = $n;<br />
}<br />
close (URLLIST);</p>
<p>close (TEMP); open (TEMP, $tempFilename);<br />
while () {<br />
chomp;<br />
my ($ip, $time, $D, $url, $sc) = split;<br />
print "$time $ipList{$ip} $urlList{$url} $sc\n";<br />
}<br />
close (TEMP);</p></blockquote>
<p>Run this perl script and redirect output to a file from the command line:</p>
<blockquote><p><strong>$ perl </strong>gnuplot.pl "/usr/local/visas/logfiles/hensler.net/bernhard.access_log" &gt; gnuplot.input</p></blockquote>
<p><span style="font-family: verdana; font-size: 12px;">The fields in <em>gnuplot.input</em>, the output file of the Perl script, are date/time, ip rank, url rank.</span></p>
<p>Run gnuplot from the command line: <strong>$ gnuplot</strong> and the following commands:</p>
<blockquote><p>reset<br />
set terminal png small color<br />
set output "3dplot.png"<br />
set style data dots<br />
set xdata time<br />
set timefmt "%d.%m.%Y:%H:%M:%S"<br />
set zlabel "Content"<br />
set ylabel "IP address"<br />
splot "gnuplot.input" using 1:2:3 title "3d"</p></blockquote>
[SinglePic not found]
<p>Image taken from <a href="http://www.oreillynet.com/pub/a/sysadmin/2007/02/02/3d-logfile-visualization.html?page=1" title="oreillynet: A New Visualization for Web Server Logs" target="_blank" class="liexternal">oreillynet</a>, my website is not producing sufficient data &#8230;</p>
<ul>
<li>X, the time axis&#8211;a full day from midnight to midnight of November 16.</li>
<li>Y, the requester&#8217;s IP address, with the conventional dotted decimal format sorted and given an ordinal number between 1 and 120,000, representing the number of clients that accessed the web server.</li>
<li>Z, the URL (or content) sorted by popularity. Of the approximately 60,000 distinct pages on the site, the most popular URLs are near the zero point of the Z-axis and the least popular ones at the top.</li>
</ul>
<p>http://www.ibm.com/developerworks/linux/library/lgnuplot</p>
<p>http://www.oreillynet.com/pub/a/sysadmin/2007/02/02/3d-logfile-visualization.html?page=1</p>
<p>http://phasorburn.com/index.php/archive/excel-0-gnuplot-1</p>
<p>A final step will cover loadrunner tools like <a href="http://www.opensta.org/" class="liexternal">openSTA </a>and <a href="http://jakarta.apache.org/jmeter/" class="liexternal">jmeter</a>.</p>
<p>See also <a href="http://bernhard.hensler.net/blog/steps-to-visualize-http-server-logging-part-i/" title="HTTP Server logging part I" class="liinternal">Part I</a> of this tutorial.</p>
]]></content:encoded>
			<wfw:commentRss>http://bernhard.hensler.net/blog/steps-to-visualize-http-server-logging-part-ii/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SSL for wordpress login and admin section</title>
		<link>http://bernhard.hensler.net/blog/ssl-for-wordpress-login-and-admin-section/</link>
		<comments>http://bernhard.hensler.net/blog/ssl-for-wordpress-login-and-admin-section/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 14:05:42 +0000</pubDate>
		<dc:creator>bernhard</dc:creator>
				<category><![CDATA[container]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[WWW]]></category>

		<guid isPermaLink="false">http://bernhard.hensler.net/blog/?p=1466</guid>
		<description><![CDATA[
add define(&#8216;FORCE_SSL_ADMIN&#8217;, true); in wp-config.php
edit /etc/apache2/listen.conf and add NameVirtualHost *:443
add a virtualHost section to your httpd.conf

&#60;VirtualHost *:443&#62;
DocumentRoot &#8220;var/local/wwwroot/bernhard/&#8221;
ServerName bernhard.hensler.net
ErrorLog /var/log/apache2/error_log
TransferLog /var/log/apache2/access_log
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+
LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/apache2/ssl.crt/server.crt
SSLCertificateKeyFile /etc/apache2/ssl.key/server.key
&#60;/VirtualHost&#62;

Fortunately there was no need to go through the painful process of creating my own CA etc., but instead I was able to use the &#8220;built-in&#8221; certifcate of my provider. To [...]]]></description>
			<content:encoded><![CDATA[<ol>
<li>add <em>define(&#8216;FORCE_SSL_ADMIN&#8217;, true);</em> in wp-config.php</li>
<li>edit /etc/apache2/listen.conf and add <em>NameVirtualHost *:443</em></li>
<li>add a virtualHost section to your httpd.conf</li>
</ol>
<blockquote><p>&lt;VirtualHost *:443&gt;<br />
DocumentRoot &#8220;var/local/wwwroot/bernhard/&#8221;<br />
ServerName bernhard.hensler.net<br />
ErrorLog /var/log/apache2/error_log<br />
TransferLog /var/log/apache2/access_log<br />
SSLEngine on<br />
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+<br />
LOW:+SSLv2:+EXP:+eNULL<br />
SSLCertificateFile /etc/apache2/ssl.crt/server.crt<br />
SSLCertificateKeyFile /etc/apache2/ssl.key/server.key<br />
&lt;/VirtualHost&gt;</p></blockquote>
<p><span id="more-1466"></span></p>
<p>Fortunately there was no need to go through the painful process of creating my own CA etc., but instead I was able to use the &#8220;built-in&#8221; certifcate of my provider. To <strong>read a SSL certificate</strong>: openssl x509 -noout -text -in certificate.crt</p>
<blockquote><p>Signature Algorithm: md5WithRSAEncryption<br />
Issuer: C=DE, O=hensler.net, OU=IT, CN=bernhard.hensler.net/emailAddress=bhensler at gmail dot com<br />
Validity<br />
Not Before: Aug 24 17:31:07 2009 GMT<br />
Not After : Aug 22 17:31:07 2019 GMT<br />
Subject: C=DE, O=hensler.net, CN=bernhard.hensler.net/emailAddress=bhensler at gmail dot com<br />
Subject Public Key Info:<br />
Public Key Algorithm: rsaEncryption<br />
RSA Public Key: (4096 bit)<br />
Modulus (4096 bit):</p>
<p style="padding-left: 30px;">
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://bernhard.hensler.net/blog/ssl-for-wordpress-login-and-admin-section/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>steps to visualize HTTP server logging &#8211; part I</title>
		<link>http://bernhard.hensler.net/blog/steps-to-visualize-http-server-logging-part-i/</link>
		<comments>http://bernhard.hensler.net/blog/steps-to-visualize-http-server-logging-part-i/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 11:23:20 +0000</pubDate>
		<dc:creator>bernhard</dc:creator>
				<category><![CDATA[container]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[WebSphere]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[WWW]]></category>

		<guid isPermaLink="false">http://bernhard.hensler.net/blog/?p=1405</guid>
		<description><![CDATA[apache
check Apache server version by creating a simple e.g. serverinfo.php file with following statement: &#60;?php phpinfo(); ?&#62;
and open in your browser: http://your host/serverinfo.php. Find the version info in the Apache Version section:
Apache Version &#8211; Apache/2.0.53 (Linux/SUSE)
or run from the command line:
/usr/sbin # apache2ctl -v
Server version: Apache/2.0.53
Server built:   Aug 30 2006 13:14:23
h969344:/usr/sbin #
Next add [...]]]></description>
			<content:encoded><![CDATA[<h2>apache</h2>
<p>check Apache server version by creating a simple e.g. <em>serverinfo.php</em> file with following statement: <em>&lt;?php phpinfo(); ?&gt;</em></p>
<p>and open in your browser: http://your host/serverinfo.php. Find the version info in the Apache Version section:</p>
<blockquote><p><span style="color: #ff0000;">Apache Version</span> &#8211; Apache/2.0.53 (Linux/SUSE)</p></blockquote>
<p>or run from the command line:</p>
<blockquote><p>/usr/sbin # apache2ctl -v</p>
<p>Server version: Apache/2.0.53</p>
<p>Server built:   Aug 30 2006 13:14:23</p>
<p>h969344:/usr/sbin #</p></blockquote>
<p>Next add <em>mod_status</em> to your APACHE_MODULES by editing /etc/sysconfig/apache2 configuration &#8211; the Status module allows a server administrator to find out how well a server is performing. A HTML page is presented that gives the current server statistics in an easily readable form:</p>
<blockquote><p>APACHE_MODULES=</p>
<p>&#8220;access actions alias auth auth_dbm autoindex cgi</p>
<p>dir env expires headers include log_config mime</p>
<p><span style="color: #ff0000;">mod_status</span> negotiation setenvif</p>
<p>ssl suexec userdir php4 rewrite&#8221;</p></blockquote>
<p><span id="more-1405"></span></p>
<p>In the same file and if extended logging is needed, set APACHE_EXTENDED_STATUS=&#8221;<span style="color: #ff0000;">on</span>&#8221; &#8211; be careful here, this will degrade performance.</p>
<p>Edit httpd.conf and add a Location section to your virtualhost section (remove <em>Include /etc/apache2/mod_status.conf</em>):</p>
<blockquote><p>&lt;VirtualHost *:80&gt;</p>
<p>&#8230;.</p>
<p>&lt;Location /<span style="color: #ff0000;">server-status</span>&gt;</p>
<p>SetHandler server-status</p>
<p># Order deny,allow</p>
<p># Deny from all</p>
<p>Allow from .yourdomain</p>
<p>&lt;/Location&gt;</p>
<p>&#8230;.</p>
<p>&lt;/VirtualHost&gt;</p></blockquote>
<p>restart the HTTP server: /usr/sbin/rcapache2 <span style="color: #ff0000;">restart</span></p>
<p>You should see your Apache server status now by issuing this URL: http://yourHost/<span style="color: #ff0000;">server-status<span style="color: #000000;"> </span></span> providing the following information:</p>
<ul style="margin-bottom: 1em; list-style-type: disc;">
<li style="line-height: 1.3em;">The number of worker serving requests</li>
<li style="line-height: 1.3em;">The number of idle worker</li>
<li style="line-height: 1.3em;">The status of each worker, the number of requests that worker has performed and the total number of bytes served by the worker (*)</li>
<li style="line-height: 1.3em;">A total number of accesses and byte count served (*)</li>
<li style="line-height: 1.3em;">The time the server was started/restarted and the time it has been running for</li>
<li style="line-height: 1.3em;">Averages giving the number of requests per second, the number of bytes served per second and the average number of bytes per request (*)</li>
<li style="line-height: 1.3em;">The current percentage CPU used by each worker and in total by Apache (*)</li>
<li style="line-height: 1.3em;">The current hosts and requests being processed (*)</li>
</ul>
<p>The lines marked &#8220;(*)&#8221; are only available if ExtendedStatus is On</p>
<h2>awstats</h2>
<p><span style="color: #ff0000;"><span style="color: #000000;">To display HTTP server log information in a graphical form, install <a href="http://awstats.sourceforge.net/" title="awstats" target="_blank" class="liexternal"><strong>awstats</strong></a>:</span></span></p>
<blockquote><p>AWStats is a free powerful and featureful tool that generates advanced web, streaming, ftp or mail server statistics, graphically.</p></blockquote>
<p>Copy awstats to a directory of your choice, installation defaults to /usr/local/awstats. Then run the awstats configuration process: <em>perl awstats_configure.pl</em>, which will add directives to your httpd.conf and create a configuration file (default location: /etc/awstats)</p>
<blockquote><p>&lt;Directory &#8220;/usr/local/awstats/wwwroot&#8221;&gt;</p>
<p>Options all</p>
<p>AllowOverride None</p>
<p>Order allow,deny</p>
<p>Allow from all</p>
<p>&lt;/Directory&gt;</p>
<p>Alias /awstatsclasses &#8220;/usr/local/awstats/wwwroot/classes/&#8221;</p>
<p>Alias /awstatscss &#8220;/usr/local/awstats/wwwroot/css/&#8221;</p>
<p>Alias /awstatsicons &#8220;/usr/local/awstats/wwwroot/icon/&#8221;</p>
<p>ScriptAlias /awstats/ &#8220;/usr/local/awstats/wwwroot/cgi-bin/&#8221;</p></blockquote>
[SinglePic not found]
<p>Once done run the data import process from the cgi-bin folder of your awstats installation (you can automate this in the config file): perl awstats.pl config=yourdomain. See results of your site: http://yourdomain/awstats/awstats.pl or at this <a href="http://www.nltechno.com/awstats/awstats.pl?config=destailleur.fr" class="liexternal">demo site</a></p>
<p>This <a href="http://bernhard.hensler.net/blog/steps-to-visualize-http-server-logging-part-ii/" title="HTT PServer logging part II" class="liinternal">link</a> to part II of the tutorial.</p>
]]></content:encoded>
			<wfw:commentRss>http://bernhard.hensler.net/blog/steps-to-visualize-http-server-logging-part-i/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>how to generate and analyze a WebSphere heapdump</title>
		<link>http://bernhard.hensler.net/blog/how-to-generate-and-analyze-a-websphere-heapdump/</link>
		<comments>http://bernhard.hensler.net/blog/how-to-generate-and-analyze-a-websphere-heapdump/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 18:32:59 +0000</pubDate>
		<dc:creator>bernhard</dc:creator>
				<category><![CDATA[container]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[WebSphere]]></category>

		<guid isPermaLink="false">http://bernhard.hensler.net/blog/?p=1298</guid>
		<description><![CDATA[./was_profile/bin/wsadmin.sh -conntype SOAP -host wcl.private.lan -port 10033 -user wasadmin -password passw0rd
WASX7209I: Connected to process &#8220;WebSphere_Portal&#8221; on node wcl using SOAP connector; the type of process is: unManagedProcess; WASX7029I: For help, enter: &#8220;$Help help&#8221;
wsadmin&#62; set jvm [$AdminControl completeObjectName type=JVM,process=WebSphere_Portal,*]
WebSphere:name=JVM,process=WebSphere_Portal,
platform=dynamicproxy,node=wcl,j2eeType=JVM,
J2EEServer=WebSphere_Portal,version=6.0.2.17,
type=JVM,mbeanIdentifier=JVM,cell=wcl
wsadmin&#62;$AdminControl invoke $jvm generateHeapDump
wsadmin&#62;$AdminControl invoke $jvm dumpThreads
IBM&#8217;s support assistant (ISA) is an Eclipse based tool with quite a [...]]]></description>
			<content:encoded><![CDATA[<p>./was_profile/bin/wsadmin.sh -conntype SOAP -host wcl.private.lan -port 10033 -user wasadmin -password passw0rd</p>
<blockquote><p>WASX7209I: Connected to process &#8220;WebSphere_Portal&#8221; on node wcl using SOAP connector; the type of process is: unManagedProcess; WASX7029I: For help, enter: &#8220;$Help help&#8221;</p></blockquote>
<p>wsadmin&gt; set jvm [$AdminControl completeObjectName type=JVM,process=WebSphere_Portal,*]</p>
<blockquote><p>WebSphere:name=JVM,process=WebSphere_Portal,<br />
platform=dynamicproxy,node=wcl,j2eeType=JVM,<br />
J2EEServer=WebSphere_Portal,version=6.0.2.17,<br />
type=JVM,mbeanIdentifier=JVM,cell=wcl</p></blockquote>
<p>wsadmin&gt;$AdminControl invoke $jvm generateHeapDump<br />
wsadmin&gt;$AdminControl invoke $jvm dumpThreads</p>
<p>IBM&#8217;s support assistant (<a href="http://www-01.ibm.com/software/support/isa/" title="ISA" target="_blank" class="liexternal">ISA</a>) is an Eclipse based tool with quite a number of plugins to analyze heapdumps &#8211; a good developerworks article can be found <a href="http://www.ibm.com/developerworks/java/library/j-ibmtools1/" title="Java diagnostics, IBM style, Part 1: Garbage collection with the IBM Monitoring and Diagnostic Tools for Java - Garbage Collection and Memory Visualizer" target="_blank" class="liexternal">here (part I)</a> and <a href="http://www.ibm.com/developerworks/java/library/j-ibmtools2/" title="Java diagnostics, IBM style, Part 2: Garbage collection with the IBM Monitoring and Diagnostic Tools for Java - Garbage Collection and Memory Visualizer" target="_blank" class="liexternal">here (part II)</a>.<br />
<span id="more-1298"></span><br />
To analyze WebSphere Portal performance issues, although this document is applicable to isolate performance problems around Java based application servers in general , see <a href="http://www-01.ibm.com/support/docview.wss?uid=swg27007059" target="_blank" class="liexternal">here</a>.</p>
<p>see also <a href="http://bernhard.hensler.net/blog/how-to-enable-and-analyze-verbose-garbage-collection/" title="analyze GC" class="liinternal">here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bernhard.hensler.net/blog/how-to-generate-and-analyze-a-websphere-heapdump/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>click&amp;buy</title>
		<link>http://bernhard.hensler.net/blog/clickbuy/</link>
		<comments>http://bernhard.hensler.net/blog/clickbuy/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 10:13:53 +0000</pubDate>
		<dc:creator>bernhard</dc:creator>
				<category><![CDATA[container]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[WWW]]></category>

		<guid isPermaLink="false">http://bernhard.hensler.net/blog/?p=1249</guid>
		<description><![CDATA[ich hatte diesen Account gekündigt, am 29.03.2009 &#8211; dachte ich jedenfalls. Am 02.07.2009 wird mir mitgeteilt, dass ich etwas gekauft habe, mit einem click&#38;buy Account. Interessant ist, dass meinem wieder erwachten Account eine neue, mir unbekannte Kreditkarte hinzugefügt wurde (meine im Account gelistete Karte konnte nicht belastet werden, da abgelaufen) und ich vermute, dass der [...]]]></description>
			<content:encoded><![CDATA[<p>ich hatte diesen Account gekündigt, am 29.03.2009 &#8211; dachte ich jedenfalls. Am 02.07.2009 wird mir mitgeteilt, dass ich etwas gekauft habe, mit einem click&amp;buy Account. Interessant ist, dass meinem wieder erwachten Account eine neue, mir unbekannte Kreditkarte hinzugefügt wurde (meine im Account gelistete Karte konnte nicht belastet werden, da abgelaufen) und ich vermute, dass der Käufer, dessen Kontaktdaten mir durch click&amp;buy bekannt gegeben wurden (versteh&#8217; ich ehrlich gesagt auch nicht), keine Ahnung hat, dass er mittels click&amp;buy etwas gekauft bzw. gezahlt haben soll.<span id="more-1249"></span></p>
<p>Auf Anfrage bei click&amp;buy heisst es lediglich, dass ich wohl mit meinen Passwörtern nicht sorgsam genug umgegangen bin &#8211; stellt sich die Frage nach dem Huhn und dem Ei; ich meine, dass  eine Internet Bank so sicher sein muss, dass keinerlei Daten dechiffrier- oder hackbar sind &#8211; zumal meine mailverbindungen aussschliesslich über SSL laufen. Wie auch immer, der Kunde ist der Depp &#8211; bleibt nur der Rat: Finger weg von click&amp;buy !</p>
<p>Ich glaub&#8217;, ich frage mal in 3 Monaten wieder nach &#8230; ob es einen neuen Account auf meinen Namen bzw. mail Adresse gibt.</p>
]]></content:encoded>
			<wfw:commentRss>http://bernhard.hensler.net/blog/clickbuy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DNS Services (bind) and Synology cs407</title>
		<link>http://bernhard.hensler.net/blog/dns-services-and-synology-cs407/</link>
		<comments>http://bernhard.hensler.net/blog/dns-services-and-synology-cs407/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 10:01:36 +0000</pubDate>
		<dc:creator>bernhard</dc:creator>
				<category><![CDATA[container]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[synology]]></category>

		<guid isPermaLink="false">http://bernhard.hensler.net/blog/?p=1095</guid>
		<description><![CDATA[Setup of your CS407

ssh login to your CS407
ipkg -force-depends install bind (provided you have configured optware for your CS407) &#8212; link &#8211;
I pretty much followed the instructions for setting up and configuring a primary DNS server, so nothing to add from my side
reverse DNS lookup of any IP address in the local zone doesn&#8217;t work [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Setup of your CS407</strong></p>
<ul>
<li>ssh login to your CS407</li>
<li>ipkg -force-depends install bind (provided you have configured optware for your CS407) &#8212; <a href="http://ipkg.nslu2-linux.org/feeds/optware/syno-x07/cross/unstable/" target="_blank" class="liexternal">link</a> &#8211;</li>
<li>I pretty much followed the <a href="http://www.nslu2-linux.org/wiki/HowTo/BuildPrimaryDNSServer" target="_blank" class="liexternal">instructions</a> for setting up and configuring a primary DNS server, so nothing to add from my side</li>
<li>reverse DNS lookup of any IP address in the local zone doesn&#8217;t work so far (any hint appreciated)</li>
</ul>
<p>Alternatively a <a href="http://www.nslu2-linux.org/wiki/Optware/DnsMasq" target="_blank" class="liexternal">DNSMasq</a> package is available &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://bernhard.hensler.net/blog/dns-services-and-synology-cs407/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>openldap and Synology CS407</title>
		<link>http://bernhard.hensler.net/blog/openldap-and-synology-cs407/</link>
		<comments>http://bernhard.hensler.net/blog/openldap-and-synology-cs407/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 14:08:07 +0000</pubDate>
		<dc:creator>bernhard</dc:creator>
				<category><![CDATA[container]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[synology]]></category>

		<guid isPermaLink="false">http://bernhard.hensler.net/blog/?p=1081</guid>
		<description><![CDATA[Setup of your CS407

ssh login to your CS407
ipkg -force-depends install openldap (provided you have configured optware for your CS407) &#8212; link &#8211;
cd /opt/etc/openldap/ and edit slapd.conf and add the following lines (take a look at the README to define which schema files are appropriate for your environment) &#8211; below listed schema files are made available [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Setup of your CS407</strong></p>
<ul>
<li>ssh login to your CS407</li>
<li>ipkg -force-depends install openldap (provided you have configured optware for your CS407) &#8212; <a href="http://ipkg.nslu2-linux.org/feeds/optware/syno-x07/cross/unstable/" target="_blank" class="liexternal">link</a> &#8211;</li>
<li>cd /opt/etc/openldap/ and edit slapd.conf and add the following lines (take a look at the README to define which schema files are appropriate for your environment) &#8211; below listed schema files are made available through the installation process:</li>
</ul>
<p style="padding-left: 60px;">include         /opt/etc/openldap/schema/core.schema<br />
include         /opt/etc/openldap/schema/cosine.schema<br />
include         /opt/etc/openldap/schema/inetorgperson.schema<br />
include         /opt/etc/openldap/schema/rfc2307bis.schema<br />
include         /opt/etc/openldap/schema/ppolicy.schema</p>
<p><span id="more-1081"></span></p>
<ul>
<li>then start the ldap daemon with the following command: /opt/libexec/slapd</li>
<li>I use &#8220;<a href="http://directory.apache.org/studio/" target="_blank" class="liexternal">Apache Directory Studio</a>&#8221; (an Eclipse based LDAP Browser and Directory client) to manage and administer the openldap (you should find the credentials in slapd.conf).</li>
<li>create your base DN (e.g.: dc=private,dc=lan)</li>
<li>once a base DN has been created you should find the following lines in slapd.conf:</li>
</ul>
<p style="padding-left: 60px;">
##################<br />
# BDB database definitions<br />
##################</p>
<p style="padding-left: 60px;">database        bdb<br />
suffix          &#8220;dc=private,dc=lan&#8221;<br />
rootdn          &#8220;cn=administrator,dc=private,dc=lan&#8221;<br />
rootpw          ***********<br />
directory       /opt/var/openldap-data<br />
checkpoint 1024 5<br />
cachesize 10000<br />
# Indices to maintain<br />
checkpoint 1024 5<br />
cachesize 10000<br />
index objectClass,uidNumber,gidNumber eq<br />
index member,mail eq,pres<br />
index cn,displayname,uid,sn,givenname sub,eq,pres</p>
<ul>
<li>once your base DN definitions are OK, you can continue creating / importing your user / groups definitions (e.g. by creating ldif files)</li>
<li>if you need to add your own objectclass or attribute definitions, take a look at a schema extension file I created to provide basic Lotus Notes/Domino LDAP attributes (attibute definitions must be defined first):</li>
</ul>
<p style="padding-left: 60px;">objectidentifier DominoOC 2.16.840.1.113678.2.2.2.1.1<br />
objectidentifier DominoAT 2.16.840.1.113678.2.2.2.2.1</p>
<p style="padding-left: 60px;">##<br />
## Attribute Section<br />
##</p>
<p style="padding-left: 60px;">attributetype ( DominoAT:1 NAME ( &#8216;MailServer&#8217; )<br />
EQUALITY caseIgnoreMatch<br />
SUBSTR caseIgnoreSubstringsMatch<br />
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )</p>
<p style="padding-left: 60px;">attributetype ( DominoAT:2 NAME ( &#8216;MailFile&#8217; )<br />
EQUALITY caseIgnoreMatch<br />
SUBSTR caseIgnoreSubstringsMatch<br />
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )</p>
<p style="padding-left: 60px;">attributetype ( DominoAT:3 NAME ( &#8216;HTTP-HostName&#8217; )<br />
EQUALITY caseIgnoreMatch<br />
SUBSTR caseIgnoreSubstringsMatch<br />
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )</p>
<p style="padding-left: 60px;">attributetype ( DominoAT:4 NAME ( &#8216;HTTP-Port&#8217; )<br />
EQUALITY caseIgnoreMatch<br />
SUBSTR caseIgnoreSubstringsMatch<br />
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )</p>
<p style="padding-left: 60px;">attributetype ( DominoAT:5 NAME ( &#8216;notesDN&#8217; )<br />
DESC &#8216;attribute to uniquely identify a domino user&#8217;<br />
EQUALITY caseIgnoreMatch<br />
SUBSTR caseIgnoreSubstringsMatch<br />
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )</p>
<p style="padding-left: 60px;">##<br />
## Objectclass Section<br />
##</p>
<p style="padding-left: 60px;">objectclass ( DominoOC:1 NAME ( &#8216;dominoPerson&#8217; ) SUP top AUXILIARY<br />
DESC &#8216;represents the dominoPerson object class&#8217;<br />
MAY ( notesDN $ MailServer $ MailFile ) )</p>
<p style="padding-left: 60px;">objectclass ( DominoOC:2 NAME ( &#8216;dominoServer&#8217; ) SUP top STRUCTURAL<br />
DESC &#8216;represents the dominoServer object class&#8217;<br />
MAY  ( cn $ displayName $ description $ HTTP-HostName $ HTTP-Port))</p>
<p style="padding-left: 60px;">
<ul>
<li>add the schema extensions using the include command to your slapd.conf</li>
<li>the installation also adds a script to automatically start the ldap daemon when rebooting your cs407 (/opt/etc/init.d/S58slapd)</li>
<li>if you need to stop the ldap process: killall slapd</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://bernhard.hensler.net/blog/openldap-and-synology-cs407/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>openvpn and PKI and Synology CS407</title>
		<link>http://bernhard.hensler.net/blog/openvpn-and-pki-and-synology-cs407/</link>
		<comments>http://bernhard.hensler.net/blog/openvpn-and-pki-and-synology-cs407/#comments</comments>
		<pubDate>Sat, 03 Jan 2009 16:28:44 +0000</pubDate>
		<dc:creator>bernhard</dc:creator>
				<category><![CDATA[container]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[synology]]></category>

		<guid isPermaLink="false">http://bernhard.hensler.net/blog/?p=1002</guid>
		<description><![CDATA[The following is a summary of all required steps to enable your CS407 to use openvpn with your own PKI &#8211; I was following these  instructions. If you want to install and configure openvpn, follow this link.

download and extract openvpn-2.x.zip
copy easy-rsa folder to /opt/etc/openvpn/easy-rsa
edit vars in folder  /opt/etc/openvpn/easy-rsa
export KEY_CONFIG=/opt/etc/openvpn/easy-rsa/openssl.cnf
export KEY_DIR=/opt/etc/openvpn/private.lan/keys
export KEY_COUNTRY=YOURCOUNTRY
export KEY_PROVINCE=YOURPROVINCE
export KEY_CITY=YOURCITY
export [...]]]></description>
			<content:encoded><![CDATA[<p>The following is a summary of all required steps to enable your CS407 to use openvpn with your own PKI &#8211; I was following these  <a href="http://openvpn.net/index.php/documentation/howto.html#pki" target="_blank" class="liexternal">instructions</a>. If you want to install and configure openvpn, follow this <a href="http://bernhard.hensler.net/blog/?p=986" target="_blank" class="liinternal">link</a>.</p>
<ol>
<li>download and extract <a href="http://openvpn.net/index.php/downloads.html" target="_blank" class="liexternal">openvpn-2.x.zip</a></li>
<li>copy easy-rsa folder to /opt/etc/openvpn/easy-rsa</li>
<li>edit vars in folder  /opt/etc/openvpn/easy-rsa<br />
export KEY_CONFIG=/opt/etc/openvpn/easy-rsa/openssl.cnf<br />
export KEY_DIR=/opt/etc/openvpn/private.lan/keys<br />
export KEY_COUNTRY=YOURCOUNTRY<br />
export KEY_PROVINCE=YOURPROVINCE<br />
export KEY_CITY=YOURCITY<br />
export KEY_ORG=&#8221;YOURCOMPANY&#8221;<br />
export KEY_EMAIL=&#8221;YOUREMAILADDRESS&#8221;</li>
<li>switch to bash shell: bash-3.2#</li>
<li>. vars</li>
<li>./clean-all</li>
</ol>
<p><span id="more-1002"></span>As you create certificates, keys, and certificate signing requests, understand that only .key files should be kept confidential.  .crt and .csr files can be sent over insecure channels such as plaintext email.</p>
<ul>
<li>Start with building your own <strong>Certificate Authority</strong></li>
<li>./build-ca</li>
</ul>
<p style="padding-left: 60px;">Generating a 1024 bit RSA private key, writing new private key to &#8216;ca.key&#8217;<br />
You are about to be asked to enter information that will be incorporated into your certificate request. This information is retrieved from your vars file<br />
For the Common Name use  e.g. a combination of your server name and MAC address: CS4071101AF2018964</p>
<ul>
<li>Create your <strong>server key </strong>files</li>
<li>./build-key-server server</li>
</ul>
<p style="padding-left: 60px;">Generating a 1024 bit RSA private key, writing new private key to &#8217;server.key&#8217;<br />
Common Name (eg, your name or your server&#8217;s hostname) :cs407<br />
Sign the certificate? [y/n]:y<br />
1 out of 1 certificate requests certified, commit? [y/n]y</p>
<ul>
<li>Then create your <strong>client key</strong> files</li>
<li>./build-key thinkpad</li>
</ul>
<p style="padding-left: 60px;">Generating a 1024 bit RSA private key, writing new private key to &#8216;thinkpad.key&#8217;<br />
Common Name (eg, your name or your server&#8217;s hostname) []:thinkpad<br />
Sign the certificate? [y/n]:y<br />
1 out of 1 certificate requests certified, commit? [y/n]y</p>
<ul>
<li>Generate Diffie Hellman parameters</li>
<li>./build-dh</li>
</ul>
<p>Using tls-auth requires that you generate a shared-secret key that is used in addition to the standard RSA certificate/key:</p>
<ul>
<li>openvpn &#8211;genkey &#8211;secret ta.key</li>
</ul>
<p>In the server configuration file (<strong>server.ovpn</strong>), add:</p>
<p style="padding-left: 30px;">tls-auth ta.key 0<br />
max-clients 5 (or any number)</p>
<p>Copy the following files to the CS407 folder /opt/etc/openvpn/config:</p>
<ol>
<li> ca.crt</li>
<li>dh1024.pem</li>
<li>server.crt</li>
<li>server.key</li>
<li>server.ovpn</li>
<li>ta.key</li>
</ol>
<p>Copy the following files to your client folder C:\Program Files\OpenVPN\config</p>
<ol>
<li> ca.crt</li>
<li>thinkpad.crt</li>
<li>thinkpad.key</li>
<li>client.ovpn</li>
<li>ta.key</li>
</ol>
<p>In the client configuration file (<strong>client.ovpn</strong>), add:</p>
<p>tls-auth ta.key 1</p>
<p>Restart openvpn on your CS407 and connect your <a href="http://openvpn.se/download.html" target="_blank" class="liexternal">openvpn client</a>:</p>
<p>cd /opt/etc/init.d<br />
sh S24openvpn</p>
<p>In case you need to <strong>revoke access</strong> for specific users:</p>
<p>. vars<br />
./revoke-full &#8220;clientname&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://bernhard.hensler.net/blog/openvpn-and-pki-and-synology-cs407/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
