<?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; IT</title>
	<atom:link href="http://bernhard.hensler.net/blog/tag/it/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>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 enable and analyze verbose garbage collection</title>
		<link>http://bernhard.hensler.net/blog/how-to-enable-and-analyze-verbose-garbage-collection/</link>
		<comments>http://bernhard.hensler.net/blog/how-to-enable-and-analyze-verbose-garbage-collection/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 08:16:11 +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[WebSphere]]></category>

		<guid isPermaLink="false">http://bernhard.hensler.net/blog/?p=1474</guid>
		<description><![CDATA[In Web applications, memory utilization can impact system performance significantly. One of the most common memory problems is memory leak, which causes severe performance degradation. In theory, memory leaks should not happen in Java™ because it has Garbage Collection (GC). However, GC only cleans up unused objects that are not referenced anymore. Therefore, if an [...]]]></description>
			<content:encoded><![CDATA[<p>In Web applications, memory utilization can impact system performance significantly. One of the most common memory problems is memory leak, which causes severe performance degradation. In theory, memory leaks should not happen in Java™ because it has Garbage Collection (GC). However, GC only cleans up unused objects that are not referenced anymore. Therefore, if an object is not used, but is still referenced, GC does not remove it, which leads to memory leaks. Beside memory leaks, other memory problems that you might encounter are memory fragmentation, large objects, and tuning problems. In many cases, these memory problems can cause the application server to crash. Many users first notice that application server performance gradually declines, and eventually crashes with OutOfMemory exceptions.<br />
<span id="more-1474"></span></p>
[SinglePic not found] Enabling verbose Garbage Collection for WebSphere based Application servers, is simple (see image). After a restart garbage collection is logged in<em> native_stderr.log</em>:</p>
<p>[SinglePic not found]
<p>There are many tools for verbose GC log analysis, these tools can abstract useful information, and illustrate the trend of JVM heap size usage over time as the following. [SinglePic not found]</p>
<p>IBM Pattern Modeling and Analysis Tool for Java Garbage Collector (PMAT) parses the IBM verbose GC trace and provides a comprehensive analysis of the Java heap usage. It then recommends key configurations by first executing a diagnosis engine and then employing a pattern modeling algorithm in order to make recommendations to optimize the Java heap usage for a given JVM cycle.</p>
<p><a href="http://www.ibm.com/developerworks/websphere/library/techarticles/0706_sun/0706_sun.html" title="source" class="liexternal">source for this article</a><br />
<a href="http://www.alphaworks.ibm.com/tech/pmat" title="PMAT" class="liexternal">PMAT</a><br />
<a href="http://download.boulder.ibm.com/ibmdl/pub/software/dw/jdk/diagnosis/diag142.pdf" title="JDK Diagnosis" class="lipdf">JDK Diagnosis</a></p>
<p>see also <a href="http://bernhard.hensler.net/blog/how-to-generate-and-analyze-heapdump-with-websphere-application-server/" title="analyze heapdump" class="liinternal">here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bernhard.hensler.net/blog/how-to-enable-and-analyze-verbose-garbage-collection/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>Qatar</title>
		<link>http://bernhard.hensler.net/blog/qatar/</link>
		<comments>http://bernhard.hensler.net/blog/qatar/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 15:13:03 +0000</pubDate>
		<dc:creator>bernhard</dc:creator>
				<category><![CDATA[container]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[travel]]></category>

		<guid isPermaLink="false">http://bernhard.hensler.net/blog/?p=1236</guid>
		<description><![CDATA[
joining a critSit in Doha &#8211; Sametime 802 Domino cluster, WebSphere based Enterprise Meeting Service (EMS) cluster in one local zone on top of SUN Solaris. Presenter &#38; viewer out of sync in a web conference, frame size de-, reassembling going on, IOCP layer ? 
]]></description>
			<content:encoded><![CDATA[<div  style="text-align: left;"  class="xmlgmdiv" id="xmlgmdiv_39"><iframe class="xmlgm" id="xmlgm_39"src="http://bernhard.hensler.net/blog/wp-content/plugins/xml-google-maps/xmlgooglemaps_show.php?myid=39" style="border: 0px; width: 360px; height: 500px;" name="My_XML_Google_Maps" frameborder="0"></iframe></div>
<p>joining a critSit in Doha &#8211; Sametime 802 Domino cluster, WebSphere based Enterprise Meeting Service (EMS) cluster in one local zone on top of SUN Solaris. Presenter &amp; viewer out of sync in a web conference, frame size de-, reassembling going on, IOCP layer ? <span id="more-1236"></span><br />

<div class="ngg-galleryoverview" id="ngg-gallery-71-1236">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-3408" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/2009qatar/img_0128.jpg" title=" " rel="wp-prettyPhoto[set_71]">
								<img title="img_0128" alt="img_0128" src="http://bernhard.hensler.net/blog/wp-content/gallery/2009qatar/thumbs/thumbs_img_0128.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-3410" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/2009qatar/img_0129.jpg" title=" " rel="wp-prettyPhoto[set_71]">
								<img title="img_0129" alt="img_0129" src="http://bernhard.hensler.net/blog/wp-content/gallery/2009qatar/thumbs/thumbs_img_0129.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-3407" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/2009qatar/img_01351.png" title=" " rel="wp-prettyPhoto[set_71]">
								<img title="img_01351" alt="img_01351" src="http://bernhard.hensler.net/blog/wp-content/gallery/2009qatar/thumbs/thumbs_img_01351.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-3411" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/2009qatar/img_0138.jpg" title=" " rel="wp-prettyPhoto[set_71]">
								<img title="img_0138" alt="img_0138" src="http://bernhard.hensler.net/blog/wp-content/gallery/2009qatar/thumbs/thumbs_img_0138.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-3412" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/2009qatar/img_0146.jpg" title=" " rel="wp-prettyPhoto[set_71]">
								<img title="img_0146" alt="img_0146" src="http://bernhard.hensler.net/blog/wp-content/gallery/2009qatar/thumbs/thumbs_img_0146.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-3414" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/2009qatar/img_0149.jpg" title=" " rel="wp-prettyPhoto[set_71]">
								<img title="img_0149" alt="img_0149" src="http://bernhard.hensler.net/blog/wp-content/gallery/2009qatar/thumbs/thumbs_img_0149.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-3415" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/2009qatar/img_0150.jpg" title=" " rel="wp-prettyPhoto[set_71]">
								<img title="img_0150" alt="img_0150" src="http://bernhard.hensler.net/blog/wp-content/gallery/2009qatar/thumbs/thumbs_img_0150.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-3416" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://bernhard.hensler.net/blog/wp-content/gallery/2009qatar/img_0151.jpg" title=" " rel="wp-prettyPhoto[set_71]">
								<img title="img_0151" alt="img_0151" src="http://bernhard.hensler.net/blog/wp-content/gallery/2009qatar/thumbs/thumbs_img_0151.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>

</p>
]]></content:encoded>
			<wfw:commentRss>http://bernhard.hensler.net/blog/qatar/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>
		<item>
		<title>openvpn with Synology CS407</title>
		<link>http://bernhard.hensler.net/blog/openvpn-with-synology-cs407/</link>
		<comments>http://bernhard.hensler.net/blog/openvpn-with-synology-cs407/#comments</comments>
		<pubDate>Fri, 02 Jan 2009 20:17:04 +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=986</guid>
		<description><![CDATA[I took the liberty to copy from the following tutorial:  nas-forum

Setup of your CS407

ssh login to your CS407
ipkg -force-depends install openvpn (provided you have configured optware for your CS407) &#8212; link &#8211;
mkdir /dev/net
mknod /dev/net/tun c 10 200
mkdir /lib/modules/2.6.15
download tun.ko (this is the kernel 2.6 version; to download you will have to register)
cp tun.ko /lib/modules/2.6.15/
echo 1 [...]]]></description>
			<content:encoded><![CDATA[<p>I took the liberty to copy from the following tutorial:  <a href="http://www.nas-forum.com/forum/index.php?showtopic=1886&amp;st=0" target="_blank">nas-forum<br />
</a></p>
<p><strong>Setup of your CS407</strong></p>
<ol>
<li>ssh login to your CS407</li>
<li>ipkg -force-depends install openvpn (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>mkdir /dev/net</li>
<li>mknod /dev/net/tun c 10 200</li>
<li>mkdir /lib/modules/2.6.15</li>
<li>download <a href="http://www.nas-forum.com/forum/index.php?automodule=downloads&amp;showfile=127" target="_blank" class="liexternal">tun.ko</a> (this is the kernel 2.6 version; to download you will have to register)</li>
<li>cp tun.ko /lib/modules/2.6.15/</li>
<li>echo 1 &gt; /proc/sys/net/ipv4/ip_forward</li>
</ol>
<p><span id="more-986"></span>If you want to download the <strong>sample server/client configuration files</strong>, follow below links:</p>
<p>&#8211; <a href="http://ikeke.free.fr/syno/OpenVPN-Conf-Serv.rar" target="_blank" class="lizip">server </a>&#8211;<br />
&#8211; <a href="http://ikeke.free.fr/syno/OpenVPN-Conf-Client.rar" target="_blank" class="lizip">client </a>&#8211;</p>
<p>Then:</p>
<ol>
<li>cp -R /volume1/public/config /opt/etc/openvpn/</li>
<li>cd /opt/etc/openvpn</li>
<li>chown -R root openvpn</li>
<li>chgrp -R root openvpn</li>
<li>chmod -R 755 openvpn</li>
</ol>
<p><strong>For autostart:</strong></p>
<ol>
<li>cp /opt/etc/openvpn/config/S24openvpn /opt/etc/init.d/</li>
<li>chmod 755 /opt/etc/init.d/S24openvpn</li>
</ol>
<p><strong>Start your VPN Server:</strong><span style="color: #4169e1;"><!--colorc--></span><!--/colorc--></p>
<p>cd /opt/etc/init.d<br />
sh S24openvpn</p>
<p><strong>Download <a href="http://openvpn.se/download.html" target="_blank" class="liexternal">openvpn client</a></strong></p>
<p>- to be able to reach other private subnets behind the server (CS407)when connecting through VPN add a route on your local clients (e.g. 192.168.1.111): &#8220;route ADD  -p 192.168.11.0 MASK 255.255.255.0 192.168.1.7&#8243;</p>
<p>[192.168.11.0 - your VPN network] : [192.168.1.7 - your CS407] : [192.168.1.0 - your local network]</p>
<p>==&gt; next step is to create your own PKI, which you will find <a href="http://bernhard.hensler.net/blog/?p=1002" target="_blank" class="liinternal">here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bernhard.hensler.net/blog/openvpn-with-synology-cs407/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
