Wednesday, August 20, 2014

Ruby installation issue with openssl

So i was trying to install ruby 1.87 and the compilation broke due to openssl issue. The error was something like this.

ossl_pkey_ec.c: In function ‘ossl_ec_group_initialize’:
ossl_pkey_ec.c:761: warning: assignment makes pointer from integer without a cast
ossl_pkey_ec.c:815: error: ‘EC_GROUP_new_curve_GF2m’ undeclared (first use in this function)
ossl_pkey_ec.c:815: error: (Each undeclared identifier is reported only once
ossl_pkey_ec.c:815: error: for each function it appears in.)
make[1]: *** [ossl_pkey_ec.o] Error 1
make[1]: Leaving directory `/usr/local/src/ruby-enterprise-1.8.7-2012.02/source/ext/openssl'
make: *** [all] Error 1
So applied this patch to the openssl file in the extracted ruby source and finally the compilation was successfull. You will need to specify the location of the ossl_pkey.ec.c file in the below file or you can mention it while patching.




--- ruby-1.8.7-p374/ext/openssl/ossl_pkey_ec.c  2010-06-21 04:18:59.000000000 -0500
+++ /root/ruby-1.8.7-p374/ext/openssl/ossl_pkey_ec.c    2013-12-10 13:30:18.919963527 -0600
@@ -757,8 +757,10 @@
                 method = EC_GFp_mont_method();
             } else if (id == s_GFp_nist) {
                 method = EC_GFp_nist_method();
+               #if !defined(OPENSSL_NO_EC2M)
             } else if (id == s_GF2m_simple) {
                 method = EC_GF2m_simple_method();
+               #endif
             }

             if (method) {
@@ -811,8 +813,10 @@

             if (id == s_GFp) {
                 new_curve = EC_GROUP_new_curve_GFp;
+               #if !defined(OPENSSL_NO_EC2M)
             } else if (id == s_GF2m) {
                 new_curve = EC_GROUP_new_curve_GF2m;
+               #endif
             } else {
                 rb_raise(rb_eArgError, "unknown symbol, must be :GFp or :GF2m");
             }

Change your location to the ruby source directory and save the contents to a file named patch.txt. then issue the following command to patch.

#patch < patch.txt

Hope this helps :)

Wednesday, August 6, 2014

For those who have Issues running Microsoft Office 2007 on Wine.

So I had to remove my windows altogether and run linux. I choose the latest stable release of Mint 17, i need to have ms office installed and figured out the wine package should handle this fine. however it was not smooth as i thought.

Installation was fine. But the excel and power point was not opening and had trouble. So here is something that I did made it work for me.

1. Open the wine configuration ( gui --> Configure Wine ) and select the windows version to be "windows xp"


2. Check the libraries tab next, you will need to add  a new override for the library, choose "riched 20" and click add. Then you need to edit this newly added override and change the load order to "native ( windows )" 

 
 Apply the wine configuration and then try launching the powerpoint or excel, it should work :)

 

Monday, August 26, 2013

Nagios - Hosts Disappear

Well I had configured my nagios setup and everything seemed to be fine, then i noticed something strange! The hosts keep disappearing time to time. They do come up at an odd time but not always. Well lot of time was spent on configurations analyzing what went wrong and what ! no LUCK!! :(

So to all those who has this problem, here's something that you might want to check for. Such an issue arises due to more number of nagios PIDs, ie the shutdown of previous nagios was not proper and that PID is messing up with the new one. So to troubleshoot stop nagios, check for orphaned PIDs.. kill it and start nagios again. Voila the hosts started appearing with no issues again!! :)

[root@server ~]#    ps -ef | grep -i  nagios
nagios   23581     1  0 Aug22 ?        00:00:00 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
nagios   24686     1  0 Aug19 ?        00:00:01 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
root     29749 27976  0 07:14 pts/0    00:00:00 grep -i nagios

[root@server ~]#    /etc/init.d/nagios stop

[root@server ~]#     ps -ef | grep -i  nagios
nagios   24686     1  0 Aug19 ?        00:00:01 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
root     29760 27976  0 07:14 pts/0    00:00:00 grep -i nagios

[root@server ~]#     kill -9 24686

[root@server ~]#     ps -ef | grep -i  nagios
root     29762 27976  0 07:14 pts/0    00:00:00 grep -i nagios

[root@server ~]#     /etc/init.d/nagios start
Starting nagios: done.

[root@server ~]#     ps -ef | grep -i  nagios
nagios   29791     1  0 07:14 ?        00:00:00 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
root     29795 27976  0 07:14 pts/0    00:00:00 grep -i nagios

Thursday, June 6, 2013

Hard Disk Cloning - Data Recovery

Okay, you can use various Linux commands that can be used to clone the hard drive. This can be helpful while recovering data.

 dd

The simplest program to clone.

Usage:

dd if=/dev/sda/ of=/dev/sdb

It will copy partition table and boot loader and all partitions within this disk

Here "if" option specifies your input and "of" specifies your output.
Make sure that both hard disks are of the same size.

How to get the status of disk cloning. Open a new terminal and issue the following commands.

# pgrep -l dd
56452 dd

# kill -USR1 56452 

Here the first command will out put the process id of the dd command and the second command will make dd throw the output in the same shell where its running.

Hope it helps.
 

Tuesday, December 11, 2012

Postfix + DKIM setup



Installation

1) Get the rpmforge repo and install it.

# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
# rpm -ivh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
# yum install opendkim postfix

2) stop sendmail and remove from auto start.
# /etc/init.d/sendmail stop# chkconfig remove sendmail

3) add postfix and opendkim to the autostart pool
# chkconfig postfix on# chkconfig opendkim on

4) configure postfix.
# vi /etc/postfix/main.cf

configuration options: change the following or comment out the existing and add accordingly.
myhostname = server.yourdomainname.com ( your server hostname )mydomain = yourdomainname.commyorigin = $mydomaininet_interfaces = allmydestination = $myhostname, localhost.$mydomain, localhost, $mydomainhome_mailbox = Maildir/

Add the following for DKIM in postfix main.cf
smtpd_milters = inet:localhost:8891non_smtpd_milters       = $smtpd_miltersmilter_default_action   = acceptmilter_protocol   = 2

5) configure Opendkim


Configuration files of OpenDKIM

1. /etc/opendkim.conf – OpenDKIM’s main configuration file
2. /etc/opendkim/KeyTable – a list of keys available for signing
3. /etc/opendkim/SigningTable – a list of domains and accounts allowed to sign
4. /etc/init.d/opendkim — Service start up file.
# vi /etc/opendkim.conf

Configuration options:

PidFile /var/run/opendkim/opendkim.pidMode    svCanonicalization        relaxed/simpleSyslog  yesSyslogSuccess   yesLogWhy  yesUserID  opendkim:opendkimSocket  inet:8891@localhostUmask   002Selector        defaultKeyTable        refile:/etc/opendkim/KeyTableSigningTable    refile:/etc/opendkim/SigningTableExternalIgnoreList      refile:/etc/opendkim/TrustedHostsInternalHosts   refile:/etc/opendkim/TrustedHosts

# cd /etc/opendkim

We will create the public and private keys now.

# cd keys# mkdir yourdomainname.com; cd yourdomainname.com# opendkim-genkey -d yourdomainname.com -s default

here -d denotes your domain and -s is for selector.
# chown opendkim.opendkim ../yourdomainname.com -R

# cd ..# vi KeyTable

default._domainkey.yourdomainname.com yourdomainname.com:default:/etc/opendkim/keys/yourdomainname.com/default.private
# vi SigningTable
*@yourdomainname.com default._domainkey.yourdomainname.com

# vi TrustedHosts
127.0.0.1localhostserver.yourdomainname.comyourdomainname.com

Note: ensure that localhost is mentioned in TrustedHosts file.

Now we are ready to test this. Start opendkim first and then postfix.
# /etc/init.d/opendkim start# /etc/init.d/postfix start

Ensure that OpenDKIM logs has written on mail log file. This is the only file where you ca see any issue with the opendkim errors.
# tail -f /var/log/maillog

Sep 20 09:43:50 server opendkim[8535]: OpenDKIM Filter v2.5.2 starting (args: -x /etc/opendkim.conf -P /var/run/opendkim/opendkim.pid)


Add the DNS records to your domain name. You can get the public dns record from the following file. This is TXT record.
# cat /etc/opendkim/keys/mydomain.com/default.txt

ensure to add  a "k" ahead of ;=rsa; by default it will be without k, after the mentioned changes the dns record will have ;k=rsa;
default._domainkey IN TXT "v=DKIM1;k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJmb2F+hGx+/1Y4dadbsTzg/thhJVsZHT5chFhaoZH6SMALX6J9IIIPSW3NRsap/mUQQ5GVG9IHIBfpAsIJr8CILOVcqAWQbG5XTn9Sk1p76abg3tyR01rhSTG2CljLmkNAPqOSrE5uUEXRq1T+eGhS1EVHFWmQ5lF8ZAyoyEHewIDAQAB" ; ----- DKIM default for yourdomainname.com


Important : Don’t forget to set SPF record that may boost the email delivery.

Send out a test email and verify.
# echo " This is a test mail " | mail -s "OpenDKIM test mail" mygmail@gmail.com

If everything goes well you see a messages “DKIM-Singnature header added” in mail log.
# tail -f /var/log/messages

Sep 20 09:47:33 server opendkim[8535]: 33040108639: DKIM-Signature header added (s=default, d=yourdomainname.com)Sep 20 09:47:33 server postfix/qmgr[2390]: 33040108639: from=, size=3016, nrcpt=1 (queue active)Sep 20 09:47:33 server sendmail[8671]: q8KDlXa9008671: to=mygmail@gmail.com, ctladdr=user@yourdomainname.com (503/503), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=32554, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (Ok: queued as 33040108639)Sep 20 09:47:33 server postfix/smtpd[8636]: disconnect from GF-P-server.yourserver.com[127.0.0.1]Sep 20 09:47:34 server postfix/smtp[8642]: 33040108639: to=, relay=mailin-04.mx.aol.com[205.188.146.194]:25, delay=1.3, delays=0.1/0/0.24/0.95, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 05217380000B9)Sep 20 09:47:34 server postfix/qmgr[2390]: 33040108639: remove 


Check the email header for confirmation : you should see dkim= pass


Hope this helps :)

Saturday, October 13, 2012

Quick Setup KVM aka Kernel-based Virtual Machine

Well, I thought this was something difficult, but trust me its not brain twister to setup the virtual machines using KVM.

Note: This tutorial assumes you understand the basics of linux and aware of the commands usage.

Ok here is how I setup the same.

1. Install CentOS 6  ( minimal Installation )
2. Turn of selinux

# vi /etc/selinux/config

make the following change.

SELINUX=disabled 
Now reboot your machine to have this applied.

3. Update the system using yum

4. Install packages for Virtualization to work.

# yum install -y openssh-server openssh-client qemu-kvm  libvirt bridge-utils virt-manager.x86_64  virt-top.x86_64 screen

5. Lets setup the network now. For the kvm to work, we will need to setup bridge network. The following is the configuration options.


[root@server ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
NM_CONTROLLED="no"
ONBOOT=yes
HWADDR=00:01:6C:53:82:72
BRIDGE="br0"
[root@server ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
NM_CONTROLLED="no"
ONBOOT=yes
HWADDR=00:01:6C:53:82:72
TYPE=Bridge
IPADDR=192.168.1.10
PREFIX=24
GATEWAY=192.168.1.1
DNS1=8.8.8.8


4. Save the settings and open a screen to restart the network.

# screen -S network
# /etc/init.d/network restart
5. Now you should see the bridge network up and running.

6. Start libvirtd

# /etc/init.d/libvirtd start

Oops. it did not start for me :D here's what was missing

#  yum -y install avahi

Now libvirtd will start..

7. Copy an ISO to your home directory so that we can use this for creating Virtual Machines, we will be using centos here.

8. Create your VMs now

# virt-install --name=server_name --ram=512 --arch=x86_64 --vcpus=2 --location=/home/packages/CentOS-6.0-x86_64-bin-DVD1.iso  --os-type=linux --os-variant=rhel6 --file /home/images/server.img  --nonsparse --nographics -s15 --extra-args='console=tty0 console=ttyS0,115200n8' --prompt
9. Use Man pages for exact options.

Hope this helps :)






Friday, February 17, 2012

Unable to install applications using GEM

I faced an issue today, I was trying to install a package using gem command but ended up in the following error


Building native extensions.  This could take a while...
ERROR:  Error installing cassandra:
        ERROR: Failed to build gem native extension.
/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/ruby.h

So in order to fix this you need to install the ruby-devel package.

you can use yum or rpm or which ever you are comfortable with.

Wednesday, December 14, 2011

cPanel + mysql slow queries to TABLE_SCHEMA

If you are seeing the following in mysqladmin proc for a long time then its basically cPanel calculating account disk usage from the information_schema, this tends to increase the load on some servers.



| 14436 | root           | localhost | mysql          | Query          | 2227 |                    | SELECT TABLE_SCHEMA as DB,SUM(DATA_LENGTH)+SUM(INDEX_LEN
GTH) AS SPACEUSED from information_schema.ta |

You can place the following in your cpanel conifg (/var/cpanel/cpanel.config) to force /scripts/update_db_cache to utilize a `du` style disk calculation. This should help you.

use_information_schema=0

restart cpanel once done :) 

Sunday, November 27, 2011

Unable to mount hard disk/Partition

Yesterday I faced a strange issue, after rebooting the server I noticed that our back drives did not mount automatically. The fstab entries were proper but still the device did not mount. I tried manually

# mount /dev/sdb1 /backup

unable to mount /dev/sdb1 /backup busy or already mounted.

Googled a lot but did not find any fix, checked if the raid setup was causing the issue since we had raid setup sometime back ( although it was not in use )

Did the following to fix this ( try as a last attempt if no other method works :D )


root@server [~]# dmsetup ls 
ddf1_4035305a0590430220202020202020201d9400003a354a45   (253, 2) 
VolGroup00-swap (253, 1) 
VolGroup00-root (253, 0) 
root@server [~]# dmsetup remove ddf1_4035305a0590430220202020202020201d9400003a354a45 
root@server [~]# dmsetup ls 
VolGroup00-swap (253, 1) 
VolGroup00-root (253, 0) 
root@server [~]# mount /dev/sdb1 /backup 


root@server [~]# df -h


/dev/sdb1             276G  223G   39G  86% /backup 




Hope this helps :)

Saturday, November 20, 2010

Cpanel upcp error

Issue: root@server [~]# /scripts/upcp --force
/scripts/upcp syntax OK
Running Futex Check/Fix......Done
Undefined subroutine &Cpanel::Update::automatic_updates_enabled called at /scripts/upcp line 273.

Solution: wget -O /root/updatenow.static http://httpupdate.cpanel.net/cpanelsync/RELEASE/scripts/updatenow.static && perl /root/updatenow.static --manual

Then run /scripts/upcp --force.

It should fix it!!