QuicksearchCreative CommonsBlog Administration |
How to update Python bindings to subversion.Wednesday, July 13. 2011Recently I run into the problem that a team had a requirement for subversion 1.6.6 (while CentOS 5u3 was not supporting this... but the vendor didn't provide a newer release). This team also had a requirement to have TRAC... TRAC is depended on Python... but I was not allowed to update the subversion bindings for python by updating the it on the whole system... so... this is what I did:
Posted by Pieter de Rijk
in Linux/Unix/BSD, System Information Scanner, System Op stuff, Work
at
20:33
CentOS 5 enabling Two-factor SSH authentication via GoogleTuesday, June 21. 2011Today I noticed a very nice article about enabling Google's two-factor authentication for Linux SSH. After reading it... I found some time to play with it... so I enabled it within 10 minutes on my CentOS 5 64bit play-ground server... but there are some small 'caveats'. hg - Command To checkout the code, you must make install the mercurial RPM... this one is available via the EPEL repositories. So after having the EPEL repositories enabled, run as root: yum -y install mercurial Compiling the PAM module When you checked out the code. hg clone https://google-authenticator.googlecode.com/hg/ google-authenticator/ You cannot compile directly the module... therefor you must apply a small change to the Makefile. Change where /usr/lib/libdl.so is stated to /usr/lib64/libdl.so (3 occurrences) $ make Now you've to update the /etc/pam.d/sshd so it contains: #%PAM-1.0 Configure SSH You also have to make sure that in /etc/ssh/sshd_config the following settings are set on yes: ChallengeResponseAuthentication yes And restart the SSH-daemon Set up your smartphone/credentials on the system $ google-authenticator And you're done Give it a try to SSH to that box... TIP: Make sure you've an SSH session still open... or you might lock yourself out of the system...
Use maildrop to forward a mail to another mail boxThursday, November 11. 2010I recently had the need to forward e-mail based on the from field to another mailbox. I know, it's possible with a simple .forward in your $HOME, but that will forward all the mail. So after some further searching I end up with the following rule for your maildrop filter... it simply checks if the mail (in this example) is from linus@mail.example.com and will forward it to linuxbox@collector.example.com: if ( /^From: .*linus@mail\.example\.com.*/ ) And that's all you need to put add to your $HOME/.mailfilter The Linux Kernel exploit - become root by running 32bit code on a 64bit machineWednesday, October 13. 2010A lot of discussion is about one of the last kernel exploits... the one that you can become root using 32bit code on a 64bit machine. So I wanted to know if I'm vulnerable as well... just wanted to know how it works So I simply did (as normal user) on a vulnerable version of the Linux kernel on CentOS 5.5: $ mkdir /tmp/expl Now run the binary: [pieter@testbox ~]$ whoami [pieter@testbox ~]$ whoami
Creating Snapshots of a backup using LVM snapshotMonday, February 22. 2010Normally I used to have a backup-retention-script in place that will create a TAR-ball of the backup data (using Herakles). But this way I was not able to have a retention of longer then 3 days So I had to look into another solution, I could add a new harddrive in the server... but there should be something else possible. So I ended up by using LVM snapshots. So I created a Volume group of about 100GB. In that volume group I created a logical volume of about 30GB, which is enough (and if not, we can 'grow' the Filesystem thanks to LVM After having all that done, I've created a script located in /root/scripts/lvm-snapshot. This script runs every midnight and creates a snapshot. #!/bin/bash And the crontab entry is: # crontab -l RHEL 5 with puppet, mongrel and apacheFriday, December 11. 2009This week I had to set up puppet with mongrel and apache for the balancing. To be honest... I never heard aboutthe puppet tool at all before (sorry puppet-developers On how I set up all the stuff in the test environment/production environment. First I identified the right RPMs from EPEL, because I had no connection to the Internet:
You can install them with 'yum --nogpgcheck localinstall *.rpm'. You must als make sure that apache with mod_ssl is installed as well (yum install httpd mod_ssl). Configuring Apache for load-balancing As mentioned before, apache and puppet master must be installed. First I copied and modified the /etc/init.d/httpd script to use it for puppet loadbalancing. Find my copy of the script on: http://www.xs4all.nl/~paderijk/blog/puppet-balancer So you can do: # cd /etc/init.d/ Now we have to create the some additional directories: # mkdir -p /var/log/puppet-balancer I used the configuration file initially set up by from Jeff McCune and modified it for RHEL5. This file can be found on: http://www.xs4all.nl/~paderijk/blog/puppet-balancer.conf So you can put it into place like this: # cd /etc/puppet-balancer/conf And finally we need to create a symlink name /usr/sbin/puppet-balancer which links to /usr/sbin/httpd # ln -s /usr/sbin/httpd /usr/sbin/puppet-balancer I've done this, because somehow the init-scripts are having some inconstancy. And we also need a /etc/sysconfig/puppet-balancer file # cd /etc/sysconfig For so far the apache configuration, still we don't start the puppet-balancer 'service'. First we need to configure and start the puppet master. Configuration puppetmaster The configuration of the puppetmaster was actually very easy. *UPDATE* A colleague pointed me on the fact that the CA wasn't set up properly going into mongrel mode. So first start puppetmaster normally: # service puppetmaster start ; sleep 5 ; service puppetmaster stop Make sure the following line is 'enabled' to /etc/sysconfig/puppetmaster: PUPPETMASTER_PORTS=( 18140 18141 18142 18143 ) This will enable puppetmaster with mongrel and starts on the ports 18140 to 18143 I also noticed that the RPM for puppetmaster didn't set up all the required directories, so I need to add them manual: # mkdir -p /var/lib/puppet/yaml/{facts,nodes} Start the puppetmaster and Apache (puppet-balancer) Now we can start the puppetmaster: # service puppetmaster start But we want to survive reboots as well, so we do also: # chkconfig puppetmaster on Now the Puppet CA is also set up. So now we can start the puppet-balancer (apache) as well. But first we need to symlink the key-file and the certificate file: # ln -s /var/lib/puppet/ssl/private_keys/{$(hostname -f).pem,puppet-balancer.pem} And now we can start the puppet-balancer: # service puppet-balancer start And get it also up and running after a reboot: # chkconfig puppet-balancer on More details on how to do further configuration/setting up manifest files et cetera can be found on the Puppet wiki: Continue reading "RHEL 5 with puppet, mongrel and apache" Load Grid Engine accounting file into MySQLWednesday, September 30. 2009Recently I need to create a report about utilization of an HPC Cluster that uses Grid Engine, but we didn't had ARCO and so not running yet for that cluster So I digged into my brain on how to load data from a "RAW" format into a database... it's something I did when I worked for PricewaterhouseCoopers Advisory, but then I used financial data. Please press the continue reading link below... to read more Continue reading "Load Grid Engine accounting file into MySQL" Uptimal usage of resources, result in "overuse" of licensesThursday, July 16. 2009
A user group we support uses an application and they have the license to use 20 concurrent runs. For them we've implement very recently the Sun Grid Engine job scheduler. Although they recently start complaining that jobs didn't run.
Their cluster exists out of 8 nodes with each 2 cores, so they've 16 slots in the job scheduler. We've set up two queues, the suspendable.q and the unsuspendable.q. Jobs in the suspendable.q queue can get suspended by jobs in the unsuspendable.q queue. So we can have in total 32 concurrent jobs (where 16 will be suspended). Once their cluster is really busy, some jobs will not run... and after some investigation we found out why. The jobs that are suspended don't release their license to the license server. So we can have a total of 16 jobs in the suspendable.q and 4 in the unsuspendable.q. So we start limiting the number of unsuspendable jobs to 4, because the 21nd job that will start running will fail because it won't get a license. Require client-SSL certificate for certain content.Wednesday, May 20. 2009On a kind of "intranet" website, which is secured with username/password combinations and HTTPS I've implemented the next feature: - Authorized users can read everything on the website - Files with in their filename "classified" requires a valid SSL-Client certificate... Here is the output of my apache config: <Directory /usr/sites/ssl-site/intranet/htdocs>Options Indexes MultiViews AllowOverride Authconfig Order allow,deny Allow from all AuthName "intranet" AuthType "Basic" AuthUserFile /usr/sites/ssl-site/intranet/etc/users.pwl require valid-user </Directory> <LocationMatch .*(c|C)(l|L)(a|A)(s|S)(s|S)(i|I)(f|F)(i|I)(e|E)(d|D).+> SSLVerifyClient require SSLVerifyDepth 1 SSLOptions +OptRenegotiate </LocationMatch>
I still have to sort out some issues, like directories having a directory with the name "classified" in them. Linux SUDO-hackTuesday, December 9. 2008It can happen, you have sudo-access to another account (most of the time it will be access to the root account). But most of the time the NOPASSWD option is not used due to security reasons. But there are moments you want to have sudo-credentials available, think about a script or something else.... I had the same issue, so I found the next "hack" to get the timestamp refreshed every 60 seconds. (Please note the script will use user "root" but it can be another user, please modify the scripts so it fits your needs). Step 1) Create a script in you $HOME/bin with the next content (I call it sudo-hack.sh): #!/bin/bash Step 2) Get a valid sudo-timestamp: $ sudo -u root /bin/true Step 3) Start sudo-hack.sh in the background: $ $HOME/bin/sudo-hack.sh & That's all! Passed - RH423 Red Hat Enterprise Directory Services and AuthenticationFriday, October 31. 2008This week I had the "Red Hat Enterprise Directory Services and Authentication" course and exam in Amsterdam. In the course we had some very nice stuff, like Red Hat DS and at the end Red Hat Enterprise IPA... all very cool... but today I had the exam (due to the RedHat NDA I am not allowed to say anything about the exam, so I won't do it)... but a few hours after the exam I received my results... and I passed the exam Why is the script slow...Tuesday, July 8. 2008For a project I am working on migrating UNIX applications to Linux. Most of the scripting work supposed to be done in India, and that is where the issues came in. First you have a developer who knows how to work with M$ Technet and never worked with PERL before (at least 80% of the scripts is written in PERL). First of all I introduced the user Net::LDAP within PERL, because they first did a ldapsearch, put the output into a ASCII file... and with a PERL script they structured the data... and loaded it into a Oracle database... so that was the first improvement. Next there were several issues, like not good reading or understanding LDAP/PERL at all... But at a certain moment, they start complaining about the fact that one of the scripts was slow... on the old system the script had a run time of 4 hours... and now it is up to 28 hours(!!!) First I found a 'main' kornshell script doing the next thing: for VAR in a b d e f g i j k m n o p q r s t u v w x y z The content of the ldap_script.pl was something like: #!/usr/bin/perl I thought that this costs a lot... loading PERL script, connecting to server, binding to it... et cetera... So... I removed the loop out of the mainscript... and implemented it into the PERL-script, like this: #!/usr/bin/perl use Net::LDAP; $ldap = Net::LDAP->new($LDAP_SERVER); @LOOP=("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o", Â Â Â Â Â Â "p","q","r","s","t","u","v","w","x","y","z", "'"); $ldap->bind($LDAP_DN, password=>$LDAP_PASSWD) or die "Cannot connect"; foreach $LOOP1 (@LOOP) { Â foreach $LOOP2 (@LOOP) Â { Â Â Â Â $LDAP_FILTER="(&(sn=$LOOP1*)(OfficeName=$LOOP2*))"; Â Â Â Â $mesg = $ldap->search(base=>$LDAP_BASE, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â filter=>$LDAP_FILTER, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â ) or die "Cannot connect"; Â Â Â Â push(@ENTRIES,$mesg->entries); Â } } $ldap->unbind; And this runs within 3 hours!!! And it is flying! There can be done more performance tuning... but that will be another project! Free slave DNS serverThursday, May 1. 2008Currently I own and maintain some domains. For these domains you need a DNS-server to make a proper translation from hostname to ip-adress. blog.adslweb.net -> 80.126.215.23 But to keep redundancy it is smart to have some extra DNS-servers configured. So I setup a 'master' DNS and a 'slave' DNS, but both of them were connected to a server on a ADSL line... This might not be a big problem, but due to some problems recently, I preferred to have something somewhere else After some Google-ing, I found Twisted4Life, if you create an account, they provide you for free a 'slave' DNS. Calendar integration with ThunderbirdWednesday, April 23. 2008NOTE: Some of the software is very experimental!!! I had some issues that my .ics was totally removed when I added a new 'task' via lightning, please make a backup of your ics file!
You can find information on the project website of 'lightning'. To configure your webdav, you need to click on the calendar button
Click in the left pane with the right button en select 'New Calendar', now you can use the wizard to select your calendar.
And now let the invitations come...
Fedora directory serverWednesday, April 16. 2008
Yesterday evening I start playing with Fedora Directory Server
So first I setup Fedora Core 8 as a VMWare-instance... But after some playing around, I had the next message: "Server failed to start !!! Please check errors log for problems" And guess what... no information at all in the logs /etc/dirsrv So no information... then strace will be your best friend So I started: [root@fedora-ds debug]# strace -o ~/debug/setup -ff /usr/sbin/setup-ds.pl And guess what... I had the error again... So I went to the ~/debug folder on another terminal and did: [root@fedora-ds debug]# grep "failed" * When I digged into setup.31711 I found: So this is a nice clue... /var/run/dirsrv... and guess what... the owner of this directory was fedora-ds (a user I set up initially for testing purposes for the Directory Server Conclusion... strace is your best friend
(Page 1 of 2, totaling 25 entries)
» next page
Competition entry by David Cummins powered by Serendipity v1.0 |
Some cool linksCategoriesgoogle Analytics |

