<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>LINICKX.com</title><link>https://www.linickx.com/</link><description></description><lastBuildDate>Sun, 30 Oct 2011 21:46:00 +0000</lastBuildDate><item><title>Building a free Dynamic DNS client with rackspace Cloud</title><link>https://www.linickx.com/building-a-free-dynamic-dns-client-with-rackspace-cloud</link><description>&lt;p&gt;&lt;a href="http://www.rackspace.com/cloud/cloud_hosting_products/dns/"&gt;&lt;img alt="rsdns" src="https://www.linickx.com/files/2011/10/rsdns.png" title="rsdns" /&gt;&lt;/a&gt;&lt;br /&gt;
As a &lt;a href="http://www.rackspace.co.uk/cloud-hosting/cloud-products/cloud-servers/"&gt;cloud
server&lt;/a&gt;
customer you get access to &lt;a href="http://www.rackspace.com/cloud/cloud_hosting_products/dns/"&gt;rackspace's free DNS
service&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;When I fist saw this product I had an instance light-bulb moment, I
could stop paying for a dynamic DNS service and build my own private
one. As a broadband (DHCP) user I have a very basic requirement of
needing to regularly update an A record so that I can find my pc :)&lt;/p&gt;
&lt;p&gt;To bring my idea into fruition I began researching; I need a cli tool
which I could run from cron on my linux box (&lt;em&gt;to send the DNS update
requests to rackspace&lt;/em&gt;). In my research I found
&lt;a href="https://github.com/jsquared"&gt;rscurl&lt;/a&gt;, a cli tool to control cloud
servers, as rackspace have a standard API for all their products I have
been able to use rscurl to develop
&lt;a href="https://github.com/linickx/rsdns"&gt;rsdns.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;rsdns is a series of cli tools to adding/deleting/changing rackspace DNS
records, as part of the tool development I have created a script called
&lt;code&gt;rsdns-dc.sh&lt;/code&gt; to run on my machine, below is a short how to:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How to get free dynamic dns from rackspace.&lt;/strong&gt;&lt;/p&gt;
&lt;!--more--&gt;

&lt;p&gt;&lt;u&gt;Pre-requisit&lt;/u&gt;: This is for linux/mac, if you want to do this on
windows you'll need bash, curl, awk, sed &amp;amp; dig installed - google is
your friend.&lt;/p&gt;
&lt;p&gt;The instructions below assume that you (a) have a domain and (b) have
already changed your NS records to point to dns1.stabletransit.com &amp;amp;
dns2.stabletransit.com.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/linickx/rsdns/tarball/master"&gt;Download the latest rsdns from
gitgub&lt;/a&gt; and unpack
somewhere, I like &lt;code&gt;~/bin/rsdns&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Go to your rackspace management portal and grap your username &amp;amp; API key
(&lt;em&gt;It's under "Your Account" -&amp;gt; "API Access"&lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;Create a config file for rsdns (&lt;code&gt;~/.rsdns_config&lt;/code&gt;) with your settings.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash
RSUSER=linickx  
RSAPIKEY=123456  
RSPATH=~/bin/rsdns/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You need your domain &lt;em&gt;created&lt;/em&gt; on rackspace, you can either use
rackspaces GUI to do this (&lt;em&gt;It's under "Hosting" -&amp;gt; "Cloud Servers" -&amp;gt;
"serverabc" -&amp;gt; "DNS"&lt;/em&gt; ) or you can use rsdns, like so.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash
[LINICKX@SERVER rsdns]$./rsdns-domain.sh -d www.linickx.com -e spam@linickx.com
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Once you have a domain setup you need an A record, this step was a
deliberate design to avoid any rouge cron jobs from creating a million
records, the dynamic client will only update an existing record - not
create a new one.&lt;/p&gt;
&lt;p&gt;To create the a record you going to need an IP address, it can be
something random like the below, or you can use &lt;a href="http://icanhazip.com"&gt;http://icanhazip.com&lt;/a&gt;
to get your actual current IP. Again to create a record, you can use the
rackspace GUI (&lt;em&gt;It's under "Hosting" -&amp;gt; "Cloud Servers" -&amp;gt;
"serverabc" -&amp;gt; "DNS" -&amp;gt; "yourdomain" &amp;gt; "Add"&lt;/em&gt;) or you can use
rsdns....&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash
[LINICKX@SERVER rsdns]$./rsdns-a.sh -n dynamichost.linickx.com -i 123.123.123.123 -t 3600
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In the above the TTL is set to 1hr, this is so that DNS caches do not
keep the record too long. That's all the pre-work done, now lets get
your dynamic host setup!&lt;/p&gt;
&lt;p&gt;The script to update your a record is &lt;code&gt;rsdns-dc.sh&lt;/code&gt;, and you run it like
this...&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash
[LINICKX@SERVER rsdns]$./rsdns-dc.sh -n dynamichost.linickx.com
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Easy huh? The script uses icanhazip to get your current IP, it then
update the A record with it.&lt;/p&gt;
&lt;p&gt;I never switch off my router so I have create a created a cronjob to run
that script every 2 hours, plus the 1hr TTL &lt;em&gt;should&lt;/em&gt; mean that the
record is roughly in sync with my IP without making unnecessary
requests - You can run the script more often if you like, just stay
under the limits --&amp;gt; according to &lt;a href="http://docs.rackspace.com/cdns/api/v1.0/cdns-devguide/content/Rate_Limits-d1e1222.html"&gt;the API
guidelines&lt;/a&gt;
you can make upto 25 changes per min / 2 per second.&lt;/p&gt;
&lt;p&gt;I use redhat based linux systems, so I can simply drop the following
file called rsdns-dc into &lt;code&gt;/etc/cron.d/&lt;/code&gt; with this...&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;* */2  * * *     linickx /home/linickx/bin/rsdns/rsdns-dc.sh -n dynamichost.linickx.com &amp;amp;&amp;gt;/dev/null
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now we are actually done! Free private Dynamic DNS on your own zone,
what more could you want?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">nick</dc:creator><pubDate>Sun, 30 Oct 2011 21:46:00 +0000</pubDate><guid isPermaLink="false">tag:www.linickx.com,2011-10-30:building-a-free-dynamic-dns-client-with-rackspace-cloud</guid><category>bash</category><category>github</category><category>how to</category><category>Linux</category><category>rsdns</category></item><item><title>Cisco VPN 3k Config for iPhone</title><link>https://www.linickx.com/cisco-vpn-3k-config-for-iphone</link><description>&lt;p&gt;Recently I was asked if I could help setup a VPN connection between an
Apple iPhone and a Cisco VPN Concentrator 3000, my 1st round of googling
didn't look good, there's &lt;a href="http://discussions.apple.com/thread.jspa?messageID=5935351"&gt;a discussion
here&lt;/a&gt;
complaining about how crap vpn support on the iphone is; further
searching lead me to a &lt;a href="http://www.cisco.com/en/US/docs/security/asa/asa80/configuration/guide/l2tp_ips.html#wp1046219"&gt;Cisco
document&lt;/a&gt;
which specifically targets mac clients, this document is for ASA
configuration, but if you look carefully* everything you need is in
there.&lt;/p&gt;
&lt;p&gt;*No, I didn't get this working 1st time, it took me a good couple of
hours of googling, but looking back I can see that all the info is
there.&lt;/p&gt;
&lt;p&gt;The key to getting this working is that the iphone side is not as
configurable as it should be, so if you're trying to get this to work
you need to be talking to the IT administrator to get the concentrator
side changed. The 1st word of warning is that the iphone client doesn't
support group authentication, so you're going to be changing the base
group, now by default most "production" groups will inherit settings
from the base group, so you will need to make sure that if you change
anything in the base group that it doesn't effect your other L2L or
Remote Access tunnels. (&lt;em&gt;You have been warned.&lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;To get started, for whatever reason the iphone only supports cisco's
NAT-T implementation of IPSEC, so if you have a firewall or access-list
in front of your concentrator you're going to need to open up UDP 4500,
then enable NAT Transparency. Another word of warning about NAT-T, we
found that existing VPNS to Cisco Routers started to fail after enabling
this, which was a bit odd as NAT-T wasn't enabled under any of the L2L
profiles, anyway, to fix the issue we enabled NAT-T on the routers
(again make sure UDP 4500 is allowed though any ACLs) and under "conf t"
issue:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;crypto ipsec nat-transparency udp-encapsulation&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;So, back to the cVPN3k config......&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Configuration -&amp;gt; Tunnel &amp;amp; Security -&amp;gt; NAT Transparency IPSEC over NAT-T  - TICK&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;So a quick explanation of the above so you get the idea; from the tree
on the left, click "Configuration" then "Tunnel &amp;amp; Security" then "NAT
Transparency" and tick the box next to NAT-T.&lt;/p&gt;
&lt;p&gt;Now you need to setup your PHASE 1 Proposal...&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Config -&amp;gt; Tunnel &amp;amp; Sec -&amp;gt; IPSEC -&amp;gt; IKE Proposal&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;I called mine iphone, and you need to configure the following settings.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Authentication: Preshared Key (&lt;em&gt;NOT the one with Xauth&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;Hash: SHA-1&lt;/li&gt;
&lt;li&gt;Encryption: 3DES&lt;/li&gt;
&lt;li&gt;DiffeHelmen: Group 2&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After phase one, comes PHASE 2:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Config -&amp;gt; Policy Manage -&amp;gt; Traffic Mgnt -&amp;gt; SA&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Again, add the following settings and I called mine: iphone&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Authentication: ESP / SHA&lt;/li&gt;
&lt;li&gt;Encryption: 3DES&lt;/li&gt;
&lt;li&gt;Enacapsulation: Transport&lt;/li&gt;
&lt;li&gt;IKE Proposal = iphone (&lt;em&gt;or whatever your phase 1 was called&lt;/em&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then finally we start working with the groups, so as mentioned above you
need to work with the base group:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Config -&amp;gt; User Management -&amp;gt; Base Group&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;And you need to enable the following, the other settings will be
optional:&lt;/p&gt;
&lt;p&gt;On the Base Group Tab,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tunnel Protocol: Tick "L2TP over IPSec"&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On the IPSEC Tab,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Authentication: Internal or NT depending on what you've already
    configured for other Remote Access Profiles.&lt;/li&gt;
&lt;li&gt;IPSEC SA is set to: iphone&lt;/li&gt;
&lt;li&gt;Default Preshared Key: Set this to something really really long
    (&lt;em&gt;this will be your secret on the iphone&lt;/em&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On the PPTP/L2TP Tab,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;L2TP Authentication Protocols: Tick MSCHAPv1 / MSCHAPv2&lt;/li&gt;
&lt;li&gt;L2TP Encryption: Tick 40 &amp;amp; 128 B&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;DONE! Now with a little bit of luck your iphone should connect.&lt;/p&gt;
&lt;p&gt;A Quick note about comments: &lt;strong&gt;All support requested will be deleted&lt;/strong&gt;,
I don't have access to a concentrator to offer any meaningful advise,
you use the above config at your own risk.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">nick</dc:creator><pubDate>Thu, 20 Dec 2007 13:22:00 +0000</pubDate><guid isPermaLink="false">tag:www.linickx.com,2007-12-20:cisco-vpn-3k-config-for-iphone</guid><category>Cisco</category><category>how to</category><category>iphone</category><category>Security</category><category>vpn</category></item><item><title>How to Import Vendor Specific Attributes into Cisco Secure ACS SE Applience</title><link>https://www.linickx.com/how-to-import-vendor-specific-attributes-into-cisco-secure-acs-se-applience</link><description>&lt;p&gt;I wanted to write a document on how to import RADIUS VSA's (&lt;em&gt;vendor
specific attributes&lt;/em&gt;) into cisco's ACS SE (&lt;em&gt;Solution Engine&lt;/em&gt;) appliance,
the reason being that I couldn't find any good examples on the net and
cisco's documentation just wasn't clear enough.&lt;/p&gt;
&lt;p&gt;My purpose was to use RADIUS authentication between a Nokia IPSO
appliance such that users who access voyager or ssh get authenticated
centrally; for RADIUS authentication to work your authentication server
(&lt;span style="font-style: italic"&gt;in this case ACS&lt;/span&gt;) needs to
supply the AAA client (&lt;span style="font-style: italic"&gt;in this can the
ipso box&lt;/span&gt;) with a "return list attribute". By default ACS doesn't
have the nokia attributes; to import attributes you need to get your
hands on a dictionary file, for nokia ipso it's /etc/nokia.dictionary -
I've a copy
&lt;a href="https://www.linickx.com/files/cisco/nokia-dictionary.txt"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In you dictionary file you need to pick out some key elements, firstly
the IANA-assigned enterprise code for the vendor and secondly a list of
attributes to add. Using my nokia example the vendor code is the top
line:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;VENDOR        Nokia        94&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Thus the code is 94 , and everything below that are attributes.&lt;/p&gt;
&lt;p&gt;So... Getting started with ACS, firstly if you have AAA clients which
you want to use the new attributes you are going to need to delete them,
and to be save reboot ACS. Now the import is done via the &lt;a href="http://www.cisco.com/en/US/products/sw/secursw/ps5338/products_tech_note09186a00801ddba8.shtml"&gt;RDBMS sync
process&lt;/a&gt;,
since you do not have OS level access to ACS you need to upload a file
called "accountActions.csv" (&lt;span style="font-style: italic"&gt;case
sensitive&lt;/span&gt;), uploading this file tells the internal database to
perform some commands or actions, examples would be to bulk import some
users or bulk group changes, in our case we're going to insert a new
"Vendor" into the RADIUS database, and then insert some attributes.&lt;/p&gt;
&lt;p&gt;I have created a file called
&lt;a href="https://www.linickx.com/files/cisco/createVendor_accountActions.csv"&gt;createVendor_accountActions.csv&lt;/a&gt;
if you renamed it to accountActions.csv and uploaded it to your ACS box
via the RDBMS Sync tool (&lt;em&gt;under system configuration&lt;/em&gt;) it'd perform the
following actions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;ul&gt;
&lt;li&gt;Command -1&lt;/li&gt;
&lt;li&gt;Priority - 8&lt;/li&gt;
&lt;li&gt;Action - 350 (&lt;em&gt;Create new Vendor&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;Vendor Name - Nokia&lt;/li&gt;
&lt;li&gt;ACS Vendor Number - Auto Assigned&lt;/li&gt;
&lt;li&gt;Vendor ID - 94&lt;/li&gt;
&lt;li&gt;Date of DB Transaction - 25/09/2007 13:00&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;ul&gt;
&lt;li&gt;Command - 2&lt;/li&gt;
&lt;li&gt;Priotity - 0&lt;/li&gt;
&lt;li&gt;Action - 355 (&lt;em&gt;Restart ACS Services&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;Date of DB Transaction - 25/09/2007 13:00&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The command numbers are just like primary key fields in a database or
row numbers in a spreadsheet, they need to be unique and incremental for
each csv file, and the priority specify and order to apply the commands,
you I guess you could set the priorities all to 0 and rely on the
command number to process the file in order, but I set a priority just
in case. After you apply the file ACS will be temporarily unavailable as
the services restart.&lt;/p&gt;
&lt;p&gt;Now, we look at one line of
&lt;a href="https://www.linickx.com/files/cisco/importAttributes_accountActions.csv"&gt;importAttributes_accountActions.csv&lt;/a&gt;,
again it would need to be renamed to accountActions.csv, before
uploaded, and lets take a look at one line.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Command -1&lt;/li&gt;
&lt;li&gt;Priority - 7&lt;/li&gt;
&lt;li&gt;Action - 352 (&lt;em&gt;Add VSA&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;Attribute Name - Nokia-IMSI&lt;/li&gt;
&lt;li&gt;The vendor to assign the attribute to - 94 (&lt;em&gt;Nokia&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;Attribute ID - 224&lt;/li&gt;
&lt;li&gt;Attribue type - integer ( &lt;em&gt;can only be integer, string or ipaddr&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;Date of DB Transaction - 25/09/2007 13:00&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hopefully this all starts to make sense when looking at your dictionary
file, again the final line of the file restarts the services. An
important thing to not here is that if you create a new vendor you need
to re-start the services before you can apply an attribute to it, and
you need to restart the services again to use the attributes... at this
point here it's probably worth mentioning that the version of ACS SE I'm
using now (&lt;em&gt;4.1&lt;/em&gt;) is a windows appliance, so if at any point your box
hasn't done what you think a reboot won't hurt ;)&lt;/p&gt;
&lt;p&gt;Now you can add your AAA client and in my example you could set the
vendor to RADIUS (Nokia) , if you then go into interface configuration
RADIUS (Nokia) will appear, go in there and tick all the boxes for
"group", finally if you go into your group setup at the very bottom will
be a list of attributes you've imported and can use ! :cool:&lt;/p&gt;
&lt;p&gt;Just in can you need them here are my references:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cisco.com/en/US/docs/net_mgmt/cisco_secure_access_control_server_for_windows/4.1/user/A_RDBMS.html"&gt;RDBMS Sync Import
Definitions&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cisco.com/en/US/products/sw/secursw/ps5338/products_tech_note09186a00801ddba8.shtml"&gt;Importing an accountActions.csv file into ACS
SE&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cisco.com/univercd/cc/td/doc/product/access/acs_soft/csacsapp/user/ag.htm"&gt;Universe CD version of RDBM SSync import
Defs&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">nick</dc:creator><pubDate>Mon, 05 Nov 2007 16:35:00 +0000</pubDate><guid isPermaLink="false">tag:www.linickx.com,2007-11-05:how-to-import-vendor-specific-attributes-into-cisco-secure-acs-se-applience</guid><category>acs</category><category>authentication</category><category>Cisco</category><category>how to</category><category>radius</category></item><item><title>n800 Getting started (n00b) Guide... Part Two.</title><link>https://www.linickx.com/n800-getting-started-n00b-guide-part-two</link><description>&lt;p&gt;It's taken me much longer to get this together than initially intended,
so my apologies for that. Depending on your reasons for buying your n800
will make a difference to how much this document is relevant. What I
wanted to do was concentrate on getting your n800 up and running, i.e.
you've covered &lt;a href="https://www.linickx.com/archives/292/n800-getting-started-n00b-guide-part-one"&gt;the
basics&lt;/a&gt;,
now lets install some applications to make this brick useful.&lt;/p&gt;
&lt;p&gt;Before
&lt;a href="http://maemo.org/community/wiki/howto_flashlatestnokiaimagewithlinux/"&gt;re-flashing&lt;/a&gt;
my device, I always take a list of what is installed, here's what's on
there at the moment...  &lt;/p&gt;
&lt;p&gt;&lt;code&gt;becomeroot camera, canola dates devicescape fmradio hildon-theme-cacher hildon-theme-plankton maemo-serivice-handler maemo-wordpy maemokrypt media center microb-browser openvpn webmail notify mplayer navicore openssh oss-statusbar-cpu pidgin python2.5-runtime simplelauncher skype videocenter&lt;/code&gt;&lt;br /&gt;
I won't cover them all here, as we'd all fall asleep, so I'll pick out
some favourites...let's get installing!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Multi-Media&lt;/strong&gt;, &lt;em&gt;Music 'n' Video to you and me&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;In my opinion every n800 should have
&lt;a href="http://openbossa.indt.org/canola/"&gt;Canola&lt;/a&gt; installed, it's a great
multimedia app. Canola has had some dependency issues in the past, so
I'd recommend you install it before anything else. To get this working
disable all your repo's except the "Nokia Catalogue" and "Nokia
Catalogue 3rd Party", then hit this &lt;a href="http://openbossa.indt.org.br/canola/repository-beta2/canola.install"&gt;canola one click
install&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;UK Media Player (&lt;em&gt;&lt;a href="http://maemo.org/downloads/product/ukmp"&gt;UKMP&lt;/a&gt;&lt;/em&gt;) is
another great application to install for multi media, it has a couple of
dependencies. You'll need to switch on the extras repo, install
&lt;a href="http://maemo.org/downloads/product/mplayer/"&gt;mplayer&lt;/a&gt; (&lt;em&gt;even if you
don't want ukmp, I'd recommend installing mplayer as it's brilliant at
playing back virtually any video file&lt;/em&gt;) and
&lt;a href="http://maemo.org/downloads/product/python/"&gt;python&lt;/a&gt; either by using the
application manager or the one click install files.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Utilities&lt;/strong&gt;, &lt;em&gt;those little extras you might need&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Here are some extras that'll enhance your n800 experience, you should
already have the
&lt;a href="http://maemo.org/downloads/product/osso-xterm-advanced"&gt;xterm&lt;/a&gt; install
right? But some other things that might take your fancy would be the
&lt;a href="http://maemo-hackers.org/wiki/OssoStatusbarCpu"&gt;oss-statusbar-cpu&lt;/a&gt;it
adds a nice little applet to the systray that show how "busy" your n800
is, and you can add some commands to it too!&lt;/p&gt;
&lt;p&gt;Camera &amp;amp; FM radio, are two Nokia apps that enhance what you can do with
the n800 hardware that aren't loaded by default, I'm not sure why... but
to make it easier for you I've published a copy of my sources list, if
your application manager has all these catalogues installed you should
see the Camera and radio as options you can install.&lt;/p&gt;
&lt;p&gt;Since writing my first document,
&lt;a href="http://maemo.org/downloads/product/openssh"&gt;OpenSSH&lt;/a&gt; has made its way
into a repo, whether you use that or dropbear is up to you, I prefer
openssh as it supports the keys that I use on the rest of my linux kit.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://tigert.1g.fi/blog-files/n800-theme/"&gt;Plankton theme&lt;/a&gt; is probably
one of the most popular themes added to an n800, to get it working
you'll need both files plankton + hildon theme cacher... also as quick
tip, always change your theme to a default Nokia one before running a
backup and re-flashing your device... basically it'll stop the restore
trying to use plankton before you've installed it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Web&lt;/strong&gt;, &lt;em&gt;well it is a Nokia touch, I mean internet tablet after all&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I'd recommend you install the &lt;a href="http://browser.garage.maemo.org/"&gt;firefox derived web browser for
maemo&lt;/a&gt;, it'll allow you to run "non
opera supported" sites like google docs. You can switch between the
opera and firefox rendering engine; to do that you need to enable the
hidden menu by editing /home/user/.browser and set &lt;code&gt;hidden=true&lt;/code&gt;
(&lt;em&gt;&lt;a href="http://www.internettablettalk.com/forums/showthread.php?p=60692#post60692"&gt;Reference&lt;/a&gt;&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;If you have a gmail or google apps account you'll also want the Nokia
mnotify, it'll add a little applet to you systray ... &lt;a href="https://bugs.maemo.org/show_bug.cgi?id=2066"&gt;personally I'd
prefer it to completely disappear if you haven't got any new
mail&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you're into instant messaging, then you'll need a copy of
&lt;a href="http://pidgin.garage.maemo.org/"&gt;pideon&lt;/a&gt;. It's installed in components
so if you're an msn or googletalk user make sure you install the correct
protocol support, if all else fails install them all :)&lt;/p&gt;
&lt;p&gt;For mobile blogging you may want
&lt;a href="http://maemo-wordpy.garage.maemo.org/"&gt;maemo-wordpy&lt;/a&gt;, it's not yet
something I've taken massive advantage of as I don't have a keyboard and
you need a reasonable amount of patience or practice to write a post
with the stylus, but this is something I intend to tackle!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pim&lt;/strong&gt;, &lt;em&gt;you know contacts and calendar stuff&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;There's no right answer to this, infact I've still yet to find something
that suites me. As a user, I prefer
&lt;a href="http://pimlico-project.org/dates.html"&gt;Dates&lt;/a&gt;,
&lt;a href="http://pimlico-project.org/contacts.html"&gt;Contacts&lt;/a&gt; and
&lt;a href="http://pimlico-project.org/tasks.html"&gt;tasks&lt;/a&gt; by pimlico, they're built
on the existing nokia "contacts" back end (evolution data server), but
I've yet to find a way of sync'ing them with anything which makes bulk
importing and general day to day usage an issue.&lt;/p&gt;
&lt;p&gt;The alternative is the GPE suite
(&lt;a href="http://maemo.org/downloads/product/gpe-calendar/"&gt;calendar&lt;/a&gt;,
&lt;a href="http://maemo.org/downloads/product/gpe-contacts/"&gt;contacts&lt;/a&gt; and
&lt;a href="http://maemo.org/downloads/product/gpe-todo/"&gt;todo&lt;/a&gt;). Lots of people
recommend GPE, originally I had dependency conflicts on my when I was
running the 2nd version of ITOS, I'm yet to install it, but I plan to as
there's been lots of complementary projects like
&lt;a href="http://maemo.org/downloads/product/erminig/"&gt;erming&lt;/a&gt; for google
calendar syncing and &lt;a href="http://maemo.org/downloads/product/gpesummary/"&gt;GPE
summary&lt;/a&gt; - a desktop
applet summary of your tasks and calendar&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ok, I think we'll finish there....&lt;/strong&gt;&lt;br /&gt;
I think this post long enough, I'd like to also do a part 3 and look at
the security apps you can install on your n800, this won't be so much of
a n00b guide cause it won't appeal to most people but it's one of the
reasons the n800 caught my eye originally.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">nick</dc:creator><pubDate>Mon, 15 Oct 2007 11:45:00 +0100</pubDate><guid isPermaLink="false">tag:www.linickx.com,2007-10-15:n800-getting-started-n00b-guide-part-two</guid><category>how to</category><category>maemo</category><category>n800</category><category>Nokia</category></item><item><title>CSS Styling Apache Directory Listings.</title><link>https://www.linickx.com/css-styling-apache-directory-listings</link><description>&lt;div style="float:right"&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href="https://www.linickx.com/files/2008/05/apachedirlisting_before.png"&gt; &lt;img src="https://www.linickx.com/files/2008/05/apachedirlisting_before-150x150.png" alt="Before I change Apache" /&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;tr&gt;
&lt;td style="text-align:center"&gt;
**Before.**
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;p&gt;As part of &lt;a href="https://www.linickx.com/archives/336/website-changes"&gt;my website
overhaul&lt;/a&gt;, I've
finally gotten round to styling my
&lt;a href="https://www.linickx.com/files/"&gt;/files/&lt;/a&gt; directory. I was surprised at
how easy it was actually, and the benefits far out way the time taken to
set it up, not only does this part of the site now "fit in", but I can
apply analytics tracking and adsense ;) I'm sure there probably is a
wordpress plugin that can achieve the same thing... probably better, but
I find my list of plugins ever growing and since I don't &lt;em&gt;need&lt;/em&gt; on for
this I figure if Apache can do it, let Apache do it!&lt;/p&gt;
&lt;p&gt;The work can be done in one of two ways either by pasting Apache
directives into a .htaccess file (&lt;em&gt;in the directory you want to apply
conf to&lt;/em&gt;), or in your httpd.conf you can wrap it all up in a&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;Directory&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;tag... something like&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;Directory "/var/www/html/files/"&amp;gt; foobar&amp;gt; &amp;lt;/Directory&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;below is an example of a .htaccess file as that will apply to most
people:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;        RewriteEngine Off
        AddType text/html .shtml
        AddOutputFilter INCLUDES .shtml
        Options Indexes Includes
        IndexOptions FancyIndexing SuppressHTMLPreamble XHTML IconsAreLinks FoldersFirst SuppressDescription
        HeaderName /files/HEADER.shtml
        ReadmeName /files/README.shtml
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Since my site uses wordpress with "pretty permalinks" enabled, the 1st
thing I needed to do is disable mod re-write for the directory where I
wanted listing enabled. Now if you check my
&lt;a href="https://www.linickx.com/files/"&gt;/files/&lt;/a&gt; page you'll notice that the
page title and tag line under "[LINICKX].com" change depending on what
directory you are viewing, this is done with "Server Side Includes"
(&lt;em&gt;SSI&lt;/em&gt;), so the next two options in the above config set that up.&lt;/p&gt;
&lt;p&gt;Now to take a look at the actual directory listing setup, it might be
worth you taking a look at the &lt;a href="http://httpd.apache.org/docs/2.2/mod/mod_autoindex.html"&gt;Apache
documentation&lt;/a&gt;
for a full description, but the important ones to note are&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Options Indexes Includes
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;to enable directory listing and switch on SSI, then you need&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;IndexOptions SuppressHTMLPreamble XHTML
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;to disable the default headers so that we can setup our style sheet and
favour xHTML over HTML. Apache 2.2 users also have
&lt;a href="http://httpd.apache.org/docs/2.2/mod/mod_autoindex.html#indexstylesheet"&gt;IndexStyleSheet&lt;/a&gt;
available, but since I'm using CentOS4 we'll do it this way. Finally you
need the &lt;strong&gt;HeaderName&lt;/strong&gt;, &lt;strong&gt;ReadmeName&lt;/strong&gt; directives to tell Apache which
file to look for (&lt;em&gt;by default Apache looks for README.html, but that
won't support SSI&lt;/em&gt;)... note how my .shtml files are relative to my web
root, these are not absolute paths on the file system, i.e. /files
actually maps to /var/www/html/files.&lt;/p&gt;
&lt;p&gt;You're now good to go, HEADER.shtml should contain all the xHTML you
want to appear before the directory listing, and README.html is
everything after... make sure you include all the correct \&amp;lt;html&amp;gt;,
\&amp;lt;body&amp;gt; and DOCTYPE tags.&lt;/p&gt;
&lt;p&gt;Now you'll want to get working is some dynamic content, for a simple
"print current directory" you can use&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;!--#echo var="REQUEST_URI"--&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;in your html, further documentation on getting more magic is available
&lt;a href="http://webmaster.iu.edu/tool_guide_info/ssitutorial.shtml"&gt;here&lt;/a&gt; &amp;amp;
&lt;a href="http://www.georgedillon.com/web/ssivar.shtml"&gt;here&lt;/a&gt;, I was able to
knock up a simple line of code to print the current year at the bottom
of the page....&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;!--#config timefmt="%Y"--&amp;gt;
&amp;lt;small&amp;gt;Nick Bettison 2005 - &amp;lt;!--#echo var="DATE_LOCAL"--&amp;gt; &amp;amp;amp;copy; &amp;lt;/small&amp;gt;;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Cool eh! The trick to watch out for is spaces in the above code, there
should be no white space between&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;--#echo
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;or the trailing&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;--&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;div style="float:right"&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href="https://www.linickx.com/files/2008/05/apachedirlisting_after.png"&gt;&lt;img src="https://www.linickx.com/files/2008/05/apachedirlisting_after-150x150.png" atlt="Linickx.com V2 Styled Listing!"&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;tr&gt;
&lt;td style="text-align:center"&gt;
**After.**
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;p&gt;The final thing you'll want to look at is those horible default icons!
You have a couple of options: You can either simply replace/over-write
the default ones (&lt;em&gt;on my flavour of linux they are in /var/www/icons&lt;/em&gt;),
or you can add&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;AddIcon /icons/tar.png .tar
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;to your htaccess file telling apache to look at tar.png rather than the
default tar.gif, I found some &lt;a href="https://gna.org/projects/apache-icons/"&gt;deb
archives&lt;/a&gt; which I extracted with
file-roller (&lt;em&gt;rather than trying to install anything&lt;/em&gt;) and simply
changed the ones I was going to use.... I'm very please with the final
result, I think it makes a big difference.&lt;/p&gt;
&lt;p&gt;Happy Styling One &amp;amp; All!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">nick</dc:creator><pubDate>Thu, 11 Oct 2007 08:44:00 +0100</pubDate><guid isPermaLink="false">tag:www.linickx.com,2007-10-11:css-styling-apache-directory-listings</guid><category>apache</category><category>Blog</category><category>css</category><category>how to</category><category>web design</category><category>WordPress</category></item><item><title>USB Networking with Fedora 7 &amp; n800</title><link>https://www.linickx.com/usb-networking-with-fedora-7-n800</link><description>&lt;p&gt;There are times where you cannot use WiFi, for example my workplace's
WLAN uses LEAP, which maemo doesn't support. I found that setting up USB
networking on my n800 was a bit of a pain since there isn't a single
document... if you check &lt;a href="http://del.icio.us/linickx"&gt;my del.icio.us
feed&lt;/a&gt; you'll see I bookmarked all I could
find with a &lt;a href="http://del.icio.us/linickx/usbnet"&gt;usbnet&lt;/a&gt; tag.&lt;/p&gt;
&lt;p&gt;These are the steps I ran through to enable usb networking between my
nokia n800 and my fedora 7 laptop.&lt;/p&gt;
&lt;p&gt;First we'll start with the basic setup... I'll assume you've read a
getting started article similar to
&lt;a href="https://www.linickx.com/blog/archives/292/n800-getting-started-n00b-guide-part-one/"&gt;mine&lt;/a&gt;
and already have root &amp;amp; xterm. By default n800 has a usb interface
configured, you just need to enable it, so on your n800 type:  &lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo gainroot insmod /mnt/initfs/lib/modules/2.6.18-omap1/g_ether.ko ifup usb0&lt;/code&gt;&lt;br /&gt;
The default settings add an interface with a static ip of
192.168.2.15/24 with a default gateway of 192.168.2.14.&lt;/p&gt;
&lt;p&gt;Now lets set up something similar on Fedora, you need to create a file
in &lt;code&gt;/etc/sysconfig/network-scripts&lt;/code&gt; called &lt;code&gt;ifcfg-usb0&lt;/code&gt; with the
following...  &lt;/p&gt;
&lt;p&gt;&lt;code&gt;DEVICE=usb0 BOOTPROTO=static IPADDR=192.168.2.14 BROADCAST=192.168.2.255 NETMASK=255.255.255.0 NETWORK=192.168.2.0 ONBOOT=no MII_NOT_SUPPORTED=no&lt;/code&gt;&lt;br /&gt;
Now plug the usb cable into both devices, and on your fedora box (&lt;em&gt;as
root&lt;/em&gt;) type&lt;br /&gt;
&lt;code&gt;ifup usb0&lt;/code&gt;&lt;br /&gt;
You now have connectivity, of course if you have a default fedora
install pinging 192.168.2.15 will fail because of the firewall, it is
probably best to temporarily disable the firewall
(&lt;code&gt;/etc/init.d/iptables stop&lt;/code&gt;) to see if it works, if so move onto
configuring your firewall correctly (&lt;code&gt;/etc/init.d/iptables start&lt;/code&gt;
&lt;em&gt;starts it again&lt;/em&gt;) :) You may also get usb conflicts, you can try&lt;/p&gt;
&lt;p&gt;&lt;code&gt;rmmod uhci_hcd&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;but it will disable any USB devices, you have been warned.&lt;/p&gt;
&lt;p&gt;With this basic connectivity setup you'll have two issues; you only have
connectivity between fedora &amp;amp; n800 nothing else works, and opening any
application on n800 causes it to try and connect to your wifi, so lets
look at those....&lt;/p&gt;
&lt;p&gt;I'm going to assume you used system-config-securitylevel to configure
your firewall, its worth noting that any changes you make now will be
overwritten by any future use of system-config-securitylevel so it's
probably best to take a backup of &lt;code&gt;/etc/sysconfig/ipatbles&lt;/code&gt; now and
later when you're finished.&lt;/p&gt;
&lt;p&gt;So as root type:  &lt;/p&gt;
&lt;p&gt;&lt;code&gt;iptables -I RH-Firewall-1-INPUT 2 -i usb -j ACCEPT iptables -I FORWARD 1 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -I FORWARD 1 -s 192.168.2.0/24 -j ACCEPT iptables --table nat --append POSTROUTING --out-interface eth0 -s 192.168.2.0/24 -j MASQUERADE /etc/init.d/iptables save&lt;/code&gt;&lt;br /&gt;
This will allow all connectivity in from the usb interface allowing the
n800 to send packets into the fedora box whilst the firewall is running,
it will also NAT any traffic from the usb network hiding the n800 behind
fedora so that you get onward connectivity. To get the NAT to work you
need to enable ip forwarding, this allows fedora to pass pakets between
interfaces, to do that type&lt;/p&gt;
&lt;p&gt;&lt;code&gt;echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;and to get it to survive a reboot update &lt;code&gt;/etc/sysctl.conf&lt;/code&gt; with&lt;/p&gt;
&lt;p&gt;&lt;code&gt;net.ipv4.ip_forward = 1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The final part is to enable name resolution (DNS), on n800, I updated
&lt;code&gt;/etc/resolv.conf&lt;/code&gt; with the &lt;a href="http://www.opendns.com/"&gt;opendns&lt;/a&gt;
servers...&lt;br /&gt;
&lt;code&gt;nameserver 208.67.222.222 nameserver 208.67.220.220&lt;/code&gt;&lt;br /&gt;
All things being equal you should now be able to ping www.google.com
from your n800 :cool:&lt;/p&gt;
&lt;p&gt;To get applications to connect, I found on the latest version of ITOS
that the &lt;a href="http://maemo.org/community/wiki/dummyiap/"&gt;DUMMY IAP&lt;/a&gt; didn't
work, so I stumbled across &lt;a href="http://www.internettablettalk.com/forums/showpost.php?p=52174&amp;amp;postcount=5"&gt;this
solution&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Create an "ad hoc" wifi connection with static IPs... anything it
doesn't matter, and when that's connected in xterm (&lt;em&gt;as root&lt;/em&gt;) type
&lt;code&gt;ifconfig wlan0 down&lt;/code&gt; , you should now be able to connect to the web
with your browser / skype etc over your usb network... sweet!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">nick</dc:creator><pubDate>Fri, 14 Sep 2007 18:14:00 +0100</pubDate><guid isPermaLink="false">tag:www.linickx.com,2007-09-14:usb-networking-with-fedora-7-n800</guid><category>770</category><category>Fedora</category><category>how to</category><category>Linux</category><category>maemo</category><category>n800</category><category>networking</category><category>Nokia</category><category>redhat</category><category>usb</category></item><item><title>n800 Getting started (n00b) Guide... Part One.</title><link>https://www.linickx.com/n800-getting-started-n00b-guide-part-one</link><description>&lt;p&gt;I've had my n800 a little over two weeks, and the length of this post
will propably explain why I haven't posted about it before. I love the
box, it looks sooo good, and the linux inside means that the scope of
potential is just unimaginable... but... the experience isn't perfect. I
guess the experiece is very much like the windows / linux thing as a
whole, what works is great, but &lt;em&gt;sometimes&lt;/em&gt; getting linux "just so" can
be more of an effort than in windows.&lt;/p&gt;
&lt;p&gt;I've decided to write up all my notes, and bookmarks to make things
easier for any other n800 n00bies :) Before we get started the
compulsary screen shot !&lt;/p&gt;
&lt;div&gt;

[![Screenshot of my n800
Desktop](https://www.linickx.com/files/2008/05/n800-desktop-150x150.png "n800 desktop")](https://www.linickx.com/files/2008/05/n800-desktop.png)

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Adding Software.&lt;/strong&gt;&lt;br /&gt;
You'll notice that there's not a great deal installed, and what's there
very much resembles a phone ( &lt;em&gt;*shock*&lt;/em&gt; ) and very quickly you're
going to want something extra. Now you're in a bit of a chicken and an
egg senarior, some software requires root access (&lt;em&gt;more on that later&lt;/em&gt;)
and some have a neat "single click install".&lt;/p&gt;
&lt;p&gt;First place to look for "single click installs" is
&lt;a href="http://maemo.org/downloads/"&gt;maemo.org/downloads&lt;/a&gt; but you'll notice,
that some of the icons are greyed out, so I'd recomend going though the
pain (&lt;em&gt;lots of typing / hand writing with a stylus is&lt;/em&gt;) of setting up
all the &lt;a href="http://maemo.org/community/wiki/applicationrepositories/"&gt;application
repositries&lt;/a&gt;.
To do so, open up the application manager, click (&lt;em&gt;menu&lt;/em&gt;) Tools -&amp;gt;
Application Catalogue -&amp;gt; New and simply fill in the fields for each
repo one at a time. After completeing this you'll be asked to refresh
the catalogue, if you get errors you''l have to go through each one
singley disabling it, doing a refresh until it works, and then check
that you've made no mistakes; on the other hand if it works you'll
notice l&lt;strong&gt;oads of new cool things you can install.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Got root?&lt;/strong&gt;&lt;br /&gt;
If you're new to linux, and don't know about root, it's basically the
same as the "Administrator" account on windows... but with on exception
root has NO RESTRICTIONS.. windows can (&lt;em&gt;and does sometimes&lt;/em&gt;) stop the
administrator from doing things (&lt;em&gt;like deleting locked files&lt;/em&gt;) Unix /
Linux will let the root account do anything, including wipe the file
system, so use the root account with care.&lt;/p&gt;
&lt;p&gt;You're going to need root to do certain things, to use root you need to
install "xterm" and "becomeroot" from you're list of newly setup
applications. Running xterm will give you a shell (&lt;em&gt;like a windows dos
prompt&lt;/em&gt;) where by you can directly type commands into the underlying
linux, buy typing &lt;code&gt;sudo gainroot&lt;/code&gt; you'll notice the prompt will change
from \$ to # you now have god like access to your box... at this point
I recomend you change the root password from "rootme" to something more
secure, type &lt;code&gt;passwd&lt;/code&gt; and follow the instructions. :)&lt;/p&gt;
&lt;p&gt;(&lt;em&gt;If that doesn't work, read below, install ssh and &lt;a href="http://maemo.org/community/wiki/howdoibecomeroot2/"&gt;see
this&lt;/a&gt;&lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Remote Access.&lt;/strong&gt;&lt;br /&gt;
You can get remote access onto your n800 via a couple of ways. If you
like a GUI try &lt;a href="http://mike.saunby.googlepages.com/x11vncfornokia7702"&gt;x11vnc from
here&lt;/a&gt; you can get
a &lt;a href="http://www.realvnc.com/download.html"&gt;vncviewer&lt;/a&gt; (&lt;em&gt;for windows or
linux&lt;/em&gt;) download the .deb file and open it with the application manager.
I had no problems getting this working, but I did find using the mouse
and keyboard on my pc a little slow and un-responsive so ymmv :)&lt;/p&gt;
&lt;p&gt;The otherway, and what I use is an SSH sesion, much quicker very usable,
and like running the xterm from your pc. From the list of installable
applications choose "dropbear server" and using a client (try putty for
windows).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;To connect to your Internet Tablet you will need to know its IP
address. To find this open the Connection manager and select Internet
connection &amp;gt; IP address from the menu. Tip - you may find it easier
to use a fixed IP address.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;you can ssh root@ipaddress (&lt;em&gt;using the password you set before, see why
I said to change it&lt;/em&gt;) of course to be safe you can ssh user@ipaddress,
but you'll have to change the password for user like you did before but
in a \$ shell.&lt;/p&gt;
&lt;p&gt;You'll also want to &lt;a href="http://www.internettablettalk.com/forums/showthread.php?t=5191"&gt;disable ssh from starting
automatically&lt;/a&gt;,
you don't want some script-kiddy trying to hack your box whilst you're
connected to a wifi network, as root type
&lt;code&gt;update-rc.d -f dropbear remove&lt;/code&gt; , then when you need it you can do
&lt;code&gt;/etc/init.d/dropbear start&lt;/code&gt; :cool:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Battery Life.&lt;/strong&gt;&lt;br /&gt;
The 1st thing &lt;a href="http://www.internettablettalk.com/forums/showthread.php?t=6395"&gt;I
noticed&lt;/a&gt;
when I got my new toy was that I hammered the battery and only got about
1 -&amp;gt; 2 hours wireless useage. I can confirm that using adhoc wireless
connections eat the battery, out in the world with proper AP's battery
life seems fine (&lt;em&gt;3hrs+ online perhaps&lt;/em&gt;), but at home it really doesn't
last that long.&lt;/p&gt;
&lt;p&gt;There are lots of things you can do, to improve battery life. 1st up
enable "soft power off" , this will allow you to hold down the power
button to but n800 into standby mode, really usefull for hitting before
you put it back in your pocket. &lt;a href="http://www.internettablettalk.com/forums/showthread.php?t=4625&amp;amp;page=2"&gt;See this post here for a full set of
instructions.&lt;/a&gt;Next
up, tweak your wireless settings.. what you set here will depend on what
you brought the n800 for, I would have thought most people would disable
the "search for wifi" functionality as you probably don't need it to
automagically connect to a network whilst your driving or walking, so
under the control panel -&amp;gt; connectivity set the search interval to
"Never". I've also screwed my Idle times right down so that it
disconnets if I'm not doing anything ...I haven't yet been disconnected
when I was doing something, but I do usually have to hit "connect to
network" before opening a brower etc.&lt;/p&gt;
&lt;p&gt;I'd also suggest using offline mode when you're watching a video or
something, that ways "stuff" isn't happening in the background when
you're not using it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;End of Part One&lt;/strong&gt;&lt;br /&gt;
I think that's long enough, those few tips should be enough to make
most users 1st experience better, in part two I'm going to talk about
Apps, what I've installed and what didn't get uninstalled :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">nick</dc:creator><pubDate>Sun, 27 May 2007 10:46:00 +0100</pubDate><guid isPermaLink="false">tag:www.linickx.com,2007-05-27:n800-getting-started-n00b-guide-part-one</guid><category>how to</category><category>maemo</category><category>n800</category><category>Nokia</category></item><item><title>A Linux / Command line: how to upload to wordpress wp-plugins.org via subversion ( SVN )</title><link>https://www.linickx.com/a-linux-command-line-how-to-upload-to-wordpress-wp-pluginsorg-via-subversion-svn</link><description>&lt;p&gt;Could that title get any longer !&lt;/p&gt;
&lt;p&gt;Hopefully you get the point, sometimes you need different tools for
different jobs, if you want a full development platform with SVN support
I suggest you take a look at &lt;a href="http://www.eclipse.org/"&gt;eclipse&lt;/a&gt; (&lt;em&gt;with
&lt;a href="http://subclipse.tigris.org/"&gt;subclipse&lt;/a&gt;&lt;/em&gt; ) but what if you already
have done the development and you just want to do a quick upload.&lt;/p&gt;
&lt;p&gt;My &lt;a href="https://www.linickx.com/index.php?content=php#phpbb_recent_topics.txt"&gt;phpbb_recent_topics
plugin&lt;/a&gt;
is hosted here, and when the nice guys at wordpress gave me an svn
account, I just wanted a quick way to upload what I've done. Now I must
stress this may not be the "proper" way to use svn (&lt;em&gt;there's &lt;a href="http://svnbook.red-bean.com/"&gt;a
book&lt;/a&gt; for that&lt;/em&gt;) but it is enough to
achieve what we want, a straight forward upload.&lt;/p&gt;
&lt;p&gt;I'm using redhat, so the 1st step was to install &lt;a href="http://dag.wieers.com/rpm/packages/subversion/"&gt;dag's subversion
rpm&lt;/a&gt; , I also needed to
setup an "editor" variable for commenting.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;SVN_EDITOR=vi
export SVN_EDITOR
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then, I went into a directory onto my server, and downloaded a copy of
the existing subversion directory structure.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[nick@SERVER wp_plugins]$ svn checkout https://svn.wp-plugins.org/phpbb-recent-topics/
A    phpbb-recent-topics/trunk
A    phpbb-recent-topics/branches
A    phpbb-recent-topics/tags
Checked out revision 9232.
[nick@SERVER wp_plugins]$
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;My plugin (&lt;em&gt;at the time&lt;/em&gt;) was on version 1, so my 1st steps were to
create a version 1 tag, add it to svn, get the stable copy of my plugin,
add that to svn.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[nick@SERVER wp_plugins]$ cd phpbb-recent-topics/
[nick@SERVER phpbb-recent-topics]$ ls
branches  tags  trunk
[nick@SERVER phpbb-recent-topics]$ cd tags/
[nick@SERVER tags]$ mkdir 0.1
[nick@SERVER tags]$ cd ..
[nick@SERVER wp_plugins]$ svn add phpbb-recent-topics/tags/*
A         phpbb-recent-topics/tags/0.1
[nick@SERVER wp_plugins]$ cd phpbb-recent-topics/tags/0.1/
[nick@SERVER 0.1]$ wget https://www.linickx.com/files/php/phpbb_recent_topics.txt
[nick@SERVER 0.1]$ mv phpbb_recent_topics.txt phpbb_recent_topics.php
[nick@SERVER 0.1]$ svn add phpbb_recent_topics.php
A         phpbb_recent_topics.php
[nick@SERVER 0.1]$
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Finally I updated everything, and uploaded (committed) my files.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[nick@SERVER 0.1]$ cd ../../../
[nick@SERVER wp_plugins]$ svn update phpbb-recent-topics/
At revision 9232.
[nick@SERVER wp_plugins]$ svn --username linickx commit phpbb-recent-topics/
Adding         phpbb-recent-topics/tags/0.1
Adding         phpbb-recent-topics/tags/0.1/phpbb_recent_topics.php
Transmitting file data .......
Committed revision 9233.
[nick@SERVER wp_plugins]$
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Remember this doesn't publish your plugin on
&lt;a href="http://wordpress.org/extend/plugins/"&gt;wordpress.org&lt;/a&gt;, to do that you
need &lt;a href="http://wordpress.org/extend/plugins/about/readme.txt"&gt;a valid
readme.txt&lt;/a&gt; in the
trunk directory, but as you can see once you've created all the files on
your local box, it's just a few commands to get your work uploaded.&lt;/p&gt;
&lt;p&gt;&lt;small&gt; Did you notice that the wordpress svn supports SSL ? &lt;/small&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">nick</dc:creator><pubDate>Sun, 06 May 2007 16:47:00 +0100</pubDate><guid isPermaLink="false">tag:www.linickx.com,2007-05-06:a-linux-command-line-how-to-upload-to-wordpress-wp-pluginsorg-via-subversion-svn</guid><category>development</category><category>how to</category><category>Linux</category><category>plugin</category><category>redhat</category><category>WordPress</category></item><item><title>How to Migrate from White Box Linux 4 to CentOS 4.4</title><link>https://www.linickx.com/how-to-migrate-from-white-box-linux-4-to-centos-44</link><description>&lt;p&gt;There are somethings that you just never get round to, my nagios box was
still running whitebox linux, and I've finally gotten round "upgrading"
it to CentOS... yeah ok, upgrade is arguable, but you get my point.&lt;/p&gt;
&lt;p&gt;First off a &lt;strong&gt;warning: Don't do this !&lt;/strong&gt; All the documentation, for
CentOS, RHEL, Fedora, any redhat linux all say, clean installs are the
best way, and upgrades are not advised.... therefore I offer no support
or warranty that this will work, in fact, I you advise you to read this
post, but step away from your consoles !&lt;/p&gt;
&lt;p&gt;But, if you think it might be a laugh, the &lt;a href="http://www.centos.org/modules/smartfaq/faq.php?faqid=19"&gt;centos
documentation&lt;/a&gt;is
a bit old, and not 100% correct, so here is what I did. First up (&lt;em&gt;as
root - obviously&lt;/em&gt;), clear out your yum cache,and install the CentOS gpg
key.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;yum clean all
rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-4
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Next, install some base centos packages, take not that some need to be
forced on&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;rpm -Uvh --nodeps http://mirror.centos.org/centos/4.4/os/i386/CentOS/RPMS/centos-release-4-4.2.i386.rpm
rpm -ivh http://mirror.centos.org/centos/4.4/os/i386/CentOS/RPMS/python-elementtree-1.2.6-4.2.1.i386.rpm
rpm -ivh http://mirror.centos.org/centos/4.4/os/i386/CentOS/RPMS/python-sqlite-1.1.7-1.2.i386.rpm
rpm -ivh http://mirror.centos.org/centos/4.4/os/i386/CentOS/RPMS/sqlite-3.3.3-1.2.i386.rpm
rpm -Uvh --force http://mirror.centos.org/centos/4.4/os/i386/CentOS/RPMS/python-urlgrabber-2.9.8-2.noarch.rpm
rpm -Uvh --nodeps http://mirror.centos.org/centos/4.4/os/i386/CentOS/RPMS/yum-2.4.3-1.c4.noarch.rpm
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;finally remove the whitebox rpm db.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;rpm -ev rpmdb-whitebox
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Move any "whitebox" mirrors still in &lt;em&gt;/etc/yum.repos.d&lt;/em&gt; and&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;yum install rpmdb-CentOS
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Once you have that sorted, you can complete the upgrade with&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;yum update
reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;amp; cross your fingers ;)&lt;br /&gt;
If you come across the following warnings while using yum: Warning,
could not load sqlite, falling back to pickle , I found...&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;yum install python-sqlite
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Fixed the problem. And there we have it, all my boxes are now running
CentOS - yay - just in time to look at the CentOS 5 upgrade ;)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dependency Problems ?&lt;/strong&gt;&lt;br /&gt;
If a whitebox rpm is newer than the CentOS one, it won't get upgraded,
this might cause problems when installing new packages via yum. To solve
the problem download the rpm manually from
http://www.centos.org/modules/tinycontent/index.php?id=13 and force an
upgrade&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;rpm --force -Uvh Something-CentOS.rpm
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; If you're using something like &lt;a href="http://www.rootkit.nl/projects/rootkit_hunter.html"&gt;Root Kit
Hunter&lt;/a&gt;, you will
notice a load of md5 hashes fail, these are whitebox rpm's that didn't
need upgrading, to correct the problem you need to replace these with
CentOS versions.. example rkhunter output:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/sbin/init  [ BAD ]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Find which rpm, init belongs to&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# rpm -q --whatprovides /sbin/init
SysVinit-2.85-34.3
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and upgrade it&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget http://www.mirrorservice.org/sites/mirror.centos.org/4.4/os/i386/CentOS/RPMS/SysVinit-2.85-34.3.i386.rpm
rpm --force -Uvh SysVinit-2.85-34.3.i386.rpm
&lt;/code&gt;&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">nick</dc:creator><pubDate>Tue, 24 Apr 2007 14:16:00 +0100</pubDate><guid isPermaLink="false">tag:www.linickx.com,2007-04-24:how-to-migrate-from-white-box-linux-4-to-centos-44</guid><category>centos</category><category>Enterprise Linux</category><category>Enterprise Linux</category><category>how to</category><category>migrate</category><category>redhat</category><category>upgrade</category><category>wbel</category></item><item><title>How to Monitor wordpress with Nagios</title><link>https://www.linickx.com/how-to-monitor-wordpress-with-nagios</link><description>&lt;p&gt;&lt;a href="http://wordpress.org"&gt;Wordpress&lt;/a&gt; like many web applications relies on
apache (&lt;em&gt;or something else&lt;/em&gt;) to serve the HTTP pages and mysql to store
the data. Your wordpress website is important to you, so you need an
external monitoring system to let you know what's going on.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.nagios.org"&gt;Nagios&lt;/a&gt; is a great, enterprise class,
open-source monitoring application; and what you need do is configure it
to exactly represent how wordpress works; if you can get that right you
can immediately get notified if any piece of the puzzle fails.&lt;/p&gt;
&lt;p&gt;I'm going to write up a simple example of how to monitor wordpress and
it's associated jigsaw pieces, so we're going to setup one host with
appropriate dependant services. Ultimately, you should configure nagios
to suit exactly how your environment works, but hopefully this "how to"
will get you started.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Basic Config.&lt;/strong&gt;&lt;br /&gt;
To configure nagios you need have services (&lt;em&gt;such as http&lt;/em&gt;) associated
with hosts; to get started, I'm going to have to assume you have
followed &lt;a href="http://www.maxsworld.org/index.php/how-tos/nagios"&gt;another "how
to"&lt;/a&gt; and have nagios
up and running, and monitoring localhost, you can even use &lt;a href="https://www.linickx.com/index.php?content=nagios"&gt;my own
config generator&lt;/a&gt; to
get you started ;) Basically you should have a generic check-host-alive
host.cfg entry like so:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;define host{
        use                     generic-host            ; Name of host template to use
        host_name               linickx.com
        alias                   My WebSite
        address                 www.linickx.com
        check_command           check-host-alive
        max_check_attempts      10
        check_period            24x7
        notification_interval   120
        notification_period     24x7
        notification_options    d,r
        contact_groups  admins
        }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The first (&lt;em&gt;and easiest&lt;/em&gt;) part of wordpress to monitor is the web-server
which serves the web pages on port 80, so a &lt;strong&gt;/etc/nagios/serivces.cfg&lt;/strong&gt;
entry like.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;define service{
    use                             generic-service         ; Name of service template to use
    host_name                       www.linickx.com
    service_description             HTTP
    is_volatile                     0
    check_period                    24x7
    max_check_attempts              10
    normal_check_interval           1
    retry_check_interval            1
    contact_groups                  admins
    notification_options            w,u,c,r
    notification_interval           960
    notification_period             24x7
    check_command                   check_http
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Getting Technical.&lt;/strong&gt;&lt;br /&gt;
Have you noticed the deliberate mistake ? I'm using resolvable names in
my config files, this is deliberate as my website is on a shared server,
and check_http with an IP address is very different to check_http
www.linickx.com , but in order for www.linickx.com to work, DNS needs to
be working. While we are here, it makes sense to monitor that as well.
In &lt;strong&gt;/etc/nagios/checkcommands.cfg&lt;/strong&gt; add an entry similar to....&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 'check_dns' command definition
define command{
        command_name    check_dns_linickx-com
        command_line    $USER1$/check_dns -H www.linickx.com -a 69.73.189.228
        }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Where the -a ip address , is the ip of your "A Record", if you don't
know what that is you can use
&lt;a href="http://www.dnsstuff.com/tools/lookup.ch?name=www.google.com&amp;amp;type=A"&gt;dnsstuff.com&lt;/a&gt;
to find it for you. You can now create a service that uses that
command...&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;define service{
        use                             generic-service         ; Name of service template to use
        host_name                       linickx.com
        service_description             DNS
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              10
        normal_check_interval           5
        retry_check_interval            1
        contact_groups                  admins
        notification_options            w,u,c,r
        notification_interval           960
        notification_period             24x7
        check_command                   check_dns_linickx-com
        }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We have HTTP and DNS monitored, all the wordpress data is stored in a
mySQL database, so now you need to monitor that, to do that you need to
setup another checkcommand; add the following.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# mySQL command definition
define command{
    command_name    check_mysql
    command_line    $USER1$/check_mysql -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This check command will log into the database and report OK if it is
working, much better than check_tcp 3306 . Now you can add the
following service entry&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;define service{
    use                             generic-service         ; Name of service template to use
    host_name                       www.linickx.com
    service_description             mySQL
    is_volatile                     0
    check_period                    24x7
    max_check_attempts              10
    normal_check_interval           5
    retry_check_interval            1
    contact_groups                  admins
    notification_options            w,u,c,r
    notification_interval           960
    notification_period             24x7
    check_command                   check_mysql!USERNAME!PASSWORD
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For this to work the user will need to have permissions to log into the
nagios machine, so if you followed &lt;a href="http://codex.wordpress.org/Installing_WordPress#Using_the_MySQL_Client"&gt;the wordpress
codex&lt;/a&gt;
and added "TO wordpressusername@localhost" in your mysql statement,
you'll need to add that to run&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;GRANT ALL PRIVILEGES ON databasename.* TO wordpressusername@NAGIOS-SERVER;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;where NAGIOS-SERVER is a resolvable name or ip address. Note: Don't
forget about firewalls ! Make sure that TCP 3306 is open between your
nagios box &amp;amp; wordpress website.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The bit that actually monitors wordpress.&lt;/strong&gt;&lt;br /&gt;
You are now independently checking both HTTPD &amp;amp; MYSQL, but what if
wordpress can't actually connect (lets say wp-config.php is screwed),
both these checks will pass and nagios will stay green; what you need to
do is monitor a page. If that page works , everything's fine, if the
page fails (&lt;em&gt;and you get the default database connection error page&lt;/em&gt;)
then nagios flags and alert. We're going to add another checkcommand&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 'check linickx.com wordpress' command definition
define command{
        command_name    check_wp_linickx
        command_line    $USER1$/check_http -H $HOSTADDRESS$ -u /blog/about-me -s "About Me"
        }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can alter this in anyway you want, but what it does is it looks for
http://\$HOSTADDRESS\$/blog/about-me (&lt;em&gt;so
https://www.linickx.com/blog/about-me&lt;/em&gt;) and if that page returns "About
Me" then everything is OK.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tidying up with dependencies.&lt;/strong&gt;&lt;br /&gt;
We've already established that if either mySQL, http or DNS fails,
wordpress will fail, so we want to ensure we don't get hit with double
alerts about the same problem, enter dependencies. HTTP is dependant on
DNS, enter the following in &lt;strong&gt;/etc/nagios/dependencies.cfg&lt;/strong&gt; (&lt;em&gt;make sure
you have cfg_file=/etc/nagios/dependencies.cfg in
/etc/nagios/nagios.cfg&lt;/em&gt; )&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;define servicedependency{
        host_name                       linickx.com
        service_description             DNS
        dependent_host_name             linickx.com
        dependent_service_description   HTTP
        execution_failure_criteria      n
        notification_failure_criteria   u,c
        inherits_parent         1
        }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and WordPress is dependant on HTTP &amp;amp; mySQL , so you need...&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;define servicedependency{
        host_name                       linickx.com
        service_description             HTTP
        dependent_host_name             linickx.com
        dependent_service_description   WordPress
        execution_failure_criteria      n
        notification_failure_criteria   u,c
        inherits_parent         1
        }

define servicedependency{
        host_name                       linickx.com
        service_description             mySQL
        dependent_host_name             linickx.com
        dependent_service_description   WordPress
        execution_failure_criteria      n
        notification_failure_criteria   u,c
        inherits_parent         1
        }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can check your config with &lt;strong&gt;nagios -v /etc/nagios/nagios.cfg&lt;/strong&gt; ,
assuming you have no errors wait for checks to go green and begin
testing. Tests you can run can be anything from unplugging the cable
from your nagios box to simulate a complete failure, to stopping the
mysql service on your website to make sure check_mysql works.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Making it pretty for the hell of it.&lt;/strong&gt;&lt;br /&gt;
Nagios has a web interface, one of the things we can do is customize it
to represent our config, how about a pretty icon for our website ? or a
custom wordpress action ? Here's how to setup a pretty icon and action
(&lt;em&gt;button to click on&lt;/em&gt;) for our wordpress service.&lt;/p&gt;
&lt;p&gt;To get started, you'll probably need a copy of the &lt;a href="http://svn.automattic.com/wordpress/trunk/wp-admin/images/wordpress-logo.png"&gt;wordpress logo from
the
svn&lt;/a&gt;
, I then cut the "W" out to make a square icon, but you can do what you
like :) Firstly something non essential: To display any icon in nagios
as a "host icon" you're going to need it in both png and gd2 image
format, you'll have to install a conversion tool. (&lt;em&gt;for redhat&lt;/em&gt;)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;yum install gd-progs
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;to run the conversion, use the following...&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pngtogd2 wordpress-logo.png wordpress-logo.gd2 0 1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;that'll give you a chunk size of 0 and no compression &lt;a href="http://www.nagios.org/faqs/viewfaq.php?faq_id=97"&gt;as recommended
for nagios&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But if you just want service icons, then you can get away with just a
png. Save any custom images in &lt;strong&gt;/usr/share/nagios/images/logos/&lt;/strong&gt; make
sure they're readable ( &lt;em&gt;e.g. chmod 644 file&lt;/em&gt; ) and we're good to go.&lt;/p&gt;
&lt;p&gt;So the config file, 1st make sure you have
&lt;strong&gt;cfg_file=/etc/nagios/serviceextinfo.cfg&lt;/strong&gt; enabled in
&lt;strong&gt;/etc/nagios/nagios.cfg&lt;/strong&gt; . My sericeextinfo.cfg has the following...&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;define serviceextinfo{
    host_name               linickx.com
    service_description     WordPress
    notes                   My website  powered by wordpress !
    icon_image              wordpress-w.png
    icon_image_alt          Wordpress
    action_url              http://$HOSTADDRESS$/blog/wp-admin/
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;What this does is it adds my wordpress-w icon to the nagios status
pages, and give me a "red star" type icon which when I click on takes me
to my wordpress admin page... cool !&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Some compulsory Screen-shots.&lt;/strong&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;a href="https://www.linickx.com/files/2008/05/nagios-linickxdotcom-host-detail.png"&gt;&lt;img alt="Nagios Host Detail Example" src="https://www.linickx.com/files/2008/05/nagios-linickxdotcom-host-detail-150x150.png" title="nagios linickx.com host detail" /&gt;&lt;/a&gt;   &lt;a href="https://www.linickx.com/files/2008/05/nagios-linickxdotcom-service-wordpress-detail.png"&gt;&lt;img alt="Nagios Service detail for WordPress" src="https://www.linickx.com/files/2008/05/nagios-linickxdotcom-service-wordpress-detail-150x150.png" title="nagios linickx.com service wordpress detail" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;That should just about wrap it up, one fully monitored wordpress
installation; as you can see this can be adapted to monitor any php /
mysql app :) Please &lt;a href="https://www.linickx.com/index.php?content=contact"&gt;let me
know&lt;/a&gt; if you have any
further suggestions.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">nick</dc:creator><pubDate>Mon, 19 Mar 2007 12:07:00 +0000</pubDate><guid isPermaLink="false">tag:www.linickx.com,2007-03-19:how-to-monitor-wordpress-with-nagios</guid><category>how to</category><category>Linux</category><category>nagios</category><category>WordPress</category></item></channel></rss>