<?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>marius &#187; Kernel</title>
	<atom:link href="http://devilx.net/tag/kernel/feed/" rel="self" type="application/rss+xml" />
	<link>http://devilx.net</link>
	<description></description>
	<lastBuildDate>Wed, 25 Jan 2012 07:42:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>OTRS LDAP Authentication for Agents and Customers</title>
		<link>http://devilx.net/2010/03/19/otrs-ldap-authentication-for-agents-and-customers/</link>
		<comments>http://devilx.net/2010/03/19/otrs-ldap-authentication-for-agents-and-customers/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 04:05:40 +0000</pubDate>
		<dc:creator>Marius</dc:creator>
				<category><![CDATA[Linux and stuff ...]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[CGI]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[ITIL]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[LDAP]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OTRS]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[RADIUS]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://www.devilx.net/?p=1147</guid>
		<description><![CDATA[Probably many of you have or still are actively using the open-source, ITIL compliant trouble ticket system named OTRS. And probably some of you also might have experienced the pleasure of setting up the software once &#8211; and know the &#8230; <a href="http://devilx.net/2010/03/19/otrs-ldap-authentication-for-agents-and-customers/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Probably many of you have or still are actively using the open-source, ITIL compliant trouble ticket system named <a href="http://otrs.org/">OTRS</a>. And probably some of you also might have experienced the pleasure of setting up the software once &#8211; and know the pain.</p>
<p>OTRS as a product is pretty cool and full of features, unfortunately from a technical aspect it&#8217;s pretty much of an unaesthetic &#8220;Perl hack&#8221; that&#8217;s, especially when you should try to integrate it into your existing environments and make it talk to your RADIUS or directly to your LDAP. Here, I would like to describe the basic configuration to get the latter working without any troubles.</p>
<p>Everything actually starts within the $OTRSHOME/Kernel/Config.pm. After you&#8217;ve set up your Apache to get you displayed the <em>/otrs/index.pl</em> and <em>/otrs/customer.pl</em> you&#8217;ll need to start hacking Perl in OTRS&#8217; &#8220;config file&#8221;.<br />
Let&#8217;s say, that we would want to authenticate against LDAP. And maybe not only for the agents (the people using index.pl) but also for the customers. So, let&#8217;s assume that we&#8217;re having a LDAP-tree containing our Base (&#8220;dc=something,dc=com&#8221;) and our &#8220;Users&#8221; OU (&#8220;ou=Users,dc=something,dc=com&#8221;). Also, we have a &#8220;Groups&#8221; OU (&#8220;ou=Groups,dc=something,dc=com&#8221;). I think that&#8217;s probably the most common built-up, regardless what names the OUs actually have.</p>
<p>Now, first of all, we need to know what user we could use to authenticate on our LDAP later and get the information we need. Here, I&#8217;m assuming it&#8217;s &#8220;cn=admin,dc=something,dc=com&#8221;. Let&#8217;s begin with the configuration for getting the agents authenticated:</p>
<pre>
    $Self->{'AuthModule'} = 'Kernel::System::Auth::LDAP';
    $Self->{'AuthModule::LDAP::Host'} = 'localhost';
    $Self->{'AuthModule::LDAP::BaseDN'} = 'dc=something,dc=com';
    $Self->{'AuthModule::LDAP::UID'} = 'uid';
    $Self->{'AuthModule::LDAP::GroupDN'} = 'cn=otrsagent,ou=Groups,dc=something,dc=com';
    $Self->{'AuthModule::LDAP::UserAttr'} = 'UID';
    $Self->{'AuthModule::LDAP::AccessAttr'} = 'memberUid';
    $Self->{'AuthModule::LDAP::Params'} = {
        port => 389,
        timeout => 120,
        async => 0,
        version => 3,
    };
</pre>
<p>The configuration should be pretty self-describing, though let&#8217;s sum it up: We&#8217;re connecting to the LDAP host &#8220;localhost&#8221; (since we probably tunnel the SSH port to the OTRS machine or have it running directly on that one &#8211; else you&#8217;d just need to specify another hostname/IP. BEWARE: When using an external LDAP with no tunnel you <strong>should</strong> use LDAPS!) and use our BaseDN. We define the user-id field being named &#8220;uid&#8221;, just like the user-attribute we&#8217;re going to look-up and we&#8217;ll be using the memberUid as access-attribute. Wait. memberUid? I lost you, right?</p>
<p>In this configuration, we&#8217;re also using a GroupDN that actually lets us &#8220;filter&#8221; which of our users might be allowed to use the OTRS as agents. For this, we&#8217;re accessing the group &#8220;otrsagent&#8221; within our &#8220;Groups&#8221;-OU and lookig up the memberUids.<br />
At last but not least, the actual LDAP parameters like the port for example.</p>
<p>Now, you can test your login by browsing to your index.pl and enter the credentials of an LDAP-user being in your otrsagent-group. You should now be possible to authenticate. Nothing more. You won&#8217;t be able to login to your OTRS yet. Why? It&#8217;s simple: OTRS uses LDAP only for authentication but initially copies the user-data from LDAP into its own database backend. Therefor we need to set up the &#8220;AuthSyncModule&#8221;.</p>
<p>This module allows us to tell OTRS that we&#8217;d like to have our user data being synchronized with the LDAP database. Let&#8217;s take a look at the actual configuration:</p>
<pre>
    $Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';
    $Self->{'AuthSyncModule::LDAP::Host'} = 'ldap://localhost/';
    $Self->{'AuthSyncModule::LDAP::BaseDN'} = 'dc=something, dc=com';
    $Self->{'AuthSyncModule::LDAP::UID'} = 'uid';
    $Self->{'AuthSyncModule::LDAP::UserAttr'} = 'UID';
    $Self->{'AuthSyncModule::LDAP::AccessAttr'} = 'memberUid';
    $Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'cn=admin,dc=something,dc=com';
    $Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'swordfish';

    $Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
        UserFirstname => 'givenName',
        UserLastname  => 'sn',
        UserEmail     => 'mail',
    };
    $Self->{'AuthSyncModule::LDAP::UserSyncInitialGroups'} = [
        'users',
    ];
</pre>
<p>Again, from top to bottom: We tell OTRS what LDAP host, what BaseDN, what UID/UserAttr/AccessAttr, what search user and what password to use. Then, we need to define what&#8217;s needed to be synchronized. Here, we only sync the most important data: First name, last name and e-mail. Note: Without the mail entry this won&#8217;t work!<br />
After that, we define what OTRS-groups the user should initially be in.</p>
<p>Now you should be able to authenticate <strong>and</strong> login with your LDAP user. <img src='http://devilx.net/wp-content/plugins/smilies-themer/Riceballs/smile.png' alt=':)' class='wp-smiley' /> </p>
<p><strong>Next, customer authentication.</strong></p>
<p>The customer authentication needs to be configured separately and also starts with basic LDAP information:</p>
<pre>
    $Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
    $Self->{'Customer::AuthModule::LDAP::Host'} = 'localhost';
    $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=something,dc=com';
    $Self->{'Customer::AuthModule::LDAP::UID'} = 'uid';
    $Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'cn=otrscustomer,ou=Groups,dc=something,dc=com';
    $Self->{'Customer::AuthModule::LDAP::UserAttr'} = 'UID';
    $Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'memberUid';
    $Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'cn=admin,dc=something,dc=com';
    $Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'swordfish';
    $Self->{'Customer::AuthModule::LDAP::Params'} = {
        port => 389,
        timeout => 120,
        async => 0,
        version => 3,
    };
</pre>
<p>I think I don&#8217;t need to comment this section once again. Next:</p>
<pre>
    $Self->{CustomerUser} = {
      Name => 'LDAP Datasource',
      Module => 'Kernel::System::CustomerUser::LDAP',
      Params => {
         Host => 'localhost',
         BaseDN => 'dc=something,dc=com',
         SSCOPE => 'sub',
         UserDN => 'cn=admin,dc=something,dc=com',
         UserPW => 'swordfish',
         Params => {
            port => 389,
            timeout => 120,
            async => 0,
            version => 3,
         },
      },
      CustomerKey => 'uid',
      CustomerID => 'mail',
      CustomerUserListFields => ['sn', 'cn', 'mail'],
      CustomerUserSearchFields => ['uid', 'cn', 'sn', 'mail'],
CustomerUserSearchPrefix => '',
       CustomerUserSearchSuffix => '*',
       CustomerUserSearchListLimit => 250,
       CustomerUserPostMasterSearchFields => ['mail'],
       CustomerUserNameFields => ['givenname', 'sn'],
       CustomerUserExcludePrimaryCustomerID => 0,
       AdminSetPreferences => 0,
       Map => [
           [ 'UserSalutation', 'Title',      'title',           1, 0, 'var', '', 0 ],
           [ 'UserFirstname',  'Firstname',  'cn',              1, 1, 'var', '', 0 ],
           [ 'UserLastname',   'Lastname',   'sn',              1, 1, 'var', '', 0 ],
           [ 'UserLogin',      'Username',   'uid',             1, 1, 'var', '', 0 ],
           [ 'UserEmail',      'Email',      'mail',            1, 1, 'var', '', 0 ],
           [ 'UserCustomerID', 'CustomerID', 'mail',            0, 1, 'var', '', 0 ],
           [ 'UserPhone',      'Phone',      'telephonenumber', 1, 0, 'var', '', 0 ],
           [ 'UserAddress',    'Address',    'postaladdress',   1, 0, 'var', '', 0 ],
           [ 'UserComment',    'Comment',    'description',     1, 0, 'var', '', 0 ],
       ],
    };
</pre>
<p>This is theoretically the same we&#8217;ve also set up for the agents and will let OTRS synchronize the customer data into its own database. I think the whole mapping should be pretty clear when read carefully, so I&#8217;m not going to explain every setting in detail.</p>
<p>However, after you&#8217;ve hacked together your basic configuration in this kinda way, also the customer.pl authentication should be working against your LDAP.</p>
<p>There&#8217;s one more thing that&#8217;s left to be mentioned. When you authenticate your agents against the LDAP, OTRS will try to authenticate root@localhost against it &#8211; what probably won&#8217;t work anymore then. Of course, you won&#8217;t need to go without an administrative user now. Simply pick one of your LDAP users, add him to the otrsagent group, log in to the web-interface and then adding an entry into the group_user table of OTRS&#8217; database, containing the user_id of your LDAP user (get it from the &#8220;users&#8221; table) and the group_id &#8220;1&#8243;, with the permission_key &#8220;rw&#8221; and the permission_value &#8220;1&#8243;. After that, the user should have administrative rights.</p>
<p>And the next time, I&#8217;ll show you how to build an automatic back-scratcher using a wall, some glue and a cat. Enjoy! <img src='http://devilx.net/wp-content/plugins/smilies-themer/Riceballs/smile.png' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://devilx.net/2010/03/19/otrs-ldap-authentication-for-agents-and-customers/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Bringing Lenny to the Etch</title>
		<link>http://devilx.net/2008/10/31/bringing-lenny-to-the-etch/</link>
		<comments>http://devilx.net/2008/10/31/bringing-lenny-to-the-etch/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 18:46:17 +0000</pubDate>
		<dc:creator>Marius</dc:creator>
				<category><![CDATA[Life itself]]></category>
		<category><![CDATA[Linux and stuff ...]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Apt]]></category>
		<category><![CDATA[Aptitude]]></category>
		<category><![CDATA[Backports]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[Courier]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Develop]]></category>
		<category><![CDATA[Etch]]></category>
		<category><![CDATA[Evolution]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[HTTPS]]></category>
		<category><![CDATA[Icedove]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[KVM]]></category>
		<category><![CDATA[Lenny]]></category>
		<category><![CDATA[Machine]]></category>
		<category><![CDATA[Migrate]]></category>
		<category><![CDATA[Roundcubemail]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Stable]]></category>
		<category><![CDATA[System]]></category>
		<category><![CDATA[Upgrade]]></category>
		<category><![CDATA[Virtual]]></category>
		<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://www.devilx.net/?p=588</guid>
		<description><![CDATA[So, today I upgraded the Debian Etch on my project-server at work to Debian Lenny and had to experience some things I really did not expect. The actual reason, why I upgraded was KVM. Lenny seems to be getting more &#8230; <a href="http://devilx.net/2008/10/31/bringing-lenny-to-the-etch/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So, today I upgraded the Debian Etch on my project-server at work to Debian Lenny and had to experience some things I really did not expect.</p>
<p>The actual reason, why I upgraded was KVM. Lenny seems to be getting more and more stable and by that usable as server system. Of course, it&#8217;s not etch yet, but since I&#8217;m trying to migrate from VMware (-Server) to KVM I&#8217;m actually forced to use Lenny. There are no KVM packages available for Etch, besides the ones from Backports.org. Unfortunatelly, even those are only available at version 28-4, what&#8217;s not that usable on a productive system.</p>
<p>However, so like I said, today I s/etch/lenny/g on my APT sources.list and ran an aptitude dist-upgrade. I was pretty surprised how fluent the upgrade worked out, the only thing it broke was the Roundcubemail I have installed on the machine for checking the Maildir via HTTP(S). Apache still works fine, Courier also runs, Fetchmail, and all the other stuff I had configured upgraded with nearly no problems.</p>
<p>Unfortunately, the upgrade still caused problems regarding my everyday-work. The most annoying thing is the fact, that I&#8217;m forced to use Icedove as mail client from now on, at least until some strange bug regarding the SSL authentication has been fixed in Evolution. The curious thing is, that with the previous version of Courier, Evolution worked just fine. I don&#8217;t know, what exactly the Courier developers changed, but it caused evolution to not be able anymore to authenticate against it. Some might say, it sounds like an Courier bug, but to be honest, I know how things are being implemented into Evolution and I don&#8217;t believe it&#8217;s Courier&#8217;s fault. <img src='http://devilx.net/wp-content/plugins/smilies-themer/Riceballs/wink.png' alt=';-)' class='wp-smiley' /> </p>
<p>It&#8217;s pretty much a bummer, because I actually liked working with Evolution. Not because it&#8217;s fast &#8211; it&#8217;s not. And not because it&#8217;s light &#8211; it&#8217;s neither. And not even because it works perfectly in the infrastructure I&#8217;m sitting in &#8211; it definitely did not. But Evolution unfortunatelly is the only mail reader for the GNOME desktop environment, which really integrates into the desktop. I could always take a quick look at the meetings/appointments I have for a specific test, by just clicking the the clock on my menubar. Also, it was integrated into GNOME&#8217;s keyring, so that my mail-account password was just getting unlocked after the login.</p>
<p>However, this tiny, integrative features enhanced the usability of Evolution a lot, even if everything else might just suck. Now I&#8217;m trying to find out which bugreport documented the problem I&#8217;m experiencing, to put myself on CC. I&#8217;m really wondering when this will be fixed. If it takes as long as fixing problems regarding shared folders or caldav, then I guess I&#8217;ll just try to say Hello! to my future e-mail client Icedove. <img src='http://devilx.net/wp-content/plugins/smilies-themer/Riceballs/ermm.png' alt=':-/' class='wp-smiley' /> </p>
<p>Meh.</p>
]]></content:encoded>
			<wfw:commentRss>http://devilx.net/2008/10/31/bringing-lenny-to-the-etch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some Words about VirtualBox &#8230;</title>
		<link>http://devilx.net/2008/08/22/some-words-about-virtualbox/</link>
		<comments>http://devilx.net/2008/08/22/some-words-about-virtualbox/#comments</comments>
		<pubDate>Fri, 22 Aug 2008 11:31:07 +0000</pubDate>
		<dc:creator>Marius</dc:creator>
				<category><![CDATA[Linux and stuff ...]]></category>
		<category><![CDATA[World Wide Web]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[KVM]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Sun]]></category>
		<category><![CDATA[VDI]]></category>
		<category><![CDATA[VirtualBox]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[xVM]]></category>

		<guid isPermaLink="false">http://www.devilx.net/?p=498</guid>
		<description><![CDATA[Okay, so in the past few weeks it seemed that the hype about VirtualBox (or xVM, or Diddy, or Puffy, P, Papa, Papadiddy, Pop, &#8230;) flattened and nobody&#8217;s really talking anymore about it as new and trendy virtualization-solution. Not that &#8230; <a href="http://devilx.net/2008/08/22/some-words-about-virtualbox/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Okay, so in the past few weeks it seemed that the hype about VirtualBox (or <em>xVM, or Diddy, or Puffy, P, Papa, Papadiddy, Pop</em>, &#8230;) flattened and nobody&#8217;s really talking anymore about it as new and trendy virtualization-solution. Not that I&#8217;d miss that talk, but still I&#8217;m impressed on how Sun&#8217;s trying to push their newly purchased product as alternative to VMware. Lately, I&#8217;ve just been on Sun&#8217;s xVM Site to download the new version of their <strong>desktop</strong>-virtualization-solution and saw a <a title="Sun's xVM" href="http://www.sun.com/images/l0/l0v3_xvm_ops_center.jpg" target="_blank">grahpic</a> showing &#8220;xVM VirtualBox&#8221;, &#8220;xVM Server&#8221;, &#8220;xVM Ops Center&#8221; and &#8220;VDI Software&#8221;. Of course, I was wondering what all these other products are and I&#8217;ve started browsing a bit on Sun&#8217;s site. And, well. Yet, I&#8217;m still smiling. Not because I&#8217;m happy, it&#8217;s more like a laughing-smile. As I was just bringing it out before, in my opinion VirtualBox/xVM is a desktop-virtualization &#8211; nothing more. It&#8217;s completely unusable as virtualization-server. Even as desktop-virtualization it&#8217;s so far from being complete and working the way a VMware Workstation would work, that it&#8217;s more than laughable to even thing of replacing a VMware Infrastructure by xVM.</p>
<p>Don&#8217;t get my wrong, I&#8217;m not saying that VirtualBox is crap, because it&#8217;s not. As OpenSource and &#8220;easy to use&#8221; desktop-virtualization it is great. You install it, hope that the setup builds you the kernel-modules the right way and just run it. After that you can easily create a new Windows XP guest and just use it over an NAT-interface to communicate with your other infrastructure from within the xVM. But heaven forbit if you&#8217;d like to join your xVM Windows XP to a Windows Domain &#8211; happy bridging!</p>
<p>VirtualBox is still too much fussing around with Operating System low-levels, what is completely user-unfriendly and doesn&#8217;t make things for an experienced person easier.</p>
<p>Still, I&#8217;m waiting for <a title="KVM" href="http://kvm.qumranet.com/kvmwiki" target="_blank">KVM</a> to advance.</p>
]]></content:encoded>
			<wfw:commentRss>http://devilx.net/2008/08/22/some-words-about-virtualbox/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>You have to reboot. But not not. But not later.</title>
		<link>http://devilx.net/2008/05/29/422/</link>
		<comments>http://devilx.net/2008/05/29/422/#comments</comments>
		<pubDate>Thu, 29 May 2008 15:22:07 +0000</pubDate>
		<dc:creator>Marius</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[Linux and stuff ...]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Package]]></category>
		<category><![CDATA[Update]]></category>
		<category><![CDATA[Upgrade]]></category>

		<guid isPermaLink="false">http://www.devilx.net/?p=422</guid>
		<description><![CDATA[Sometimes I love the comments shown when Debian Packages are being installed &#8230; The kernel version running is the same as the one being installed You are attempting to install a kernel version that is the same as the version &#8230; <a href="http://devilx.net/2008/05/29/422/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Sometimes I love the comments shown when Debian Packages are being installed &#8230;</p>
<blockquote><p>The kernel version running is the same as the one being installed</p>
<p>You are attempting to install a kernel version that is the same as the version you are currently running (version 2.6.18-6-686). The modules list is quite likely to have been changed, and the modules dependency file /lib/modules/2.6.18-6-686/modules.dep needs to be re-built. It can not be built correctly right now, since the module list for the running kernel are likely to be different from the kernel installed. I am creating a new modules.dep file, but that may not be correct. It shall be regenerated correctly at next reboot.</p>
<p><strong>I repeat: you have to reboot in order for the modules file to be created correctly. Until you reboot, it may be impossible to load some modules. Reboot as soon as this install is finished (Do not reboot right now, since you may not be able to boot back up until installation is over, but boot immediately after). I can not stress that too much. You need to reboot soon.</strong></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://devilx.net/2008/05/29/422/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

