Search My Techie Guy

Saturday, August 30, 2014

The "Black Money Scam" is in Uganda - This time, it's "White Money"

The infamous "Black Dollar Scam" or "Wash Wash Scam" that con artists used to cheat Americans millions of their savings and hard earned cash is here in Kampala, Uganda. This con has not been used only in America, but also UK, and many other parts of Europe and India.

Although the con is now stale in America and Europe, it's fresh in Uganda and the con men have modified it a little bit, instead of using black ink to spray the money, they are now using white.
Black Money Scam
To bring you up to speed on how this con works, please watch the videos below and later i will continue to tell you how our very own Ugandan con men are doing it.

Am sure the video has pretty much given you the foundation of the "black money scam".
A few days ago, i was approached by a "Ugandan con man", i don't know what he saw in me that appealed to him, cause i wear causal and am the modest type, .... yes, i know why? i was coming from a bank.

As i was heading for my car, the smartly dressed young man approached me and introduced himself, and told me how he had seen my car at Legends Bar some time back, that was a good guess because i do go to legends bar and i like it. This guy was my age, smart and he had step out of a "Mark X", he looked authentic if you know what i mean.

We chatted for another 5 mins and he invited me to his car to show me something. we were in a secure parking area of a big bank in Kampala, his car was not tinted, people moving around, security guards around and besides, i was from banking a cheque, not withdrawing cash, so i had nothing to fear.

He tabled his business proposal :-), he told me he had access to "White Money"! what the hell is white money? he explained to me that real Ugandan money comes into the country as "white money" and what B.O.U does is wash it with some expensive chemical to make the legal tender. Just below the co-driver's sit was a brown envelope stacked with 3 bundles of  "White Money", he asked me to pick two pieces of "white money", which i did, he then pulled out a 20K note from his wallet, sandwiched it between the white money, rolled it in a piece of white cotton cloth, same size as the "money sandwich", dropped it in a crystal clear liquid which was in small water bottle, shook the contents for approximately one minute and asked me to pour out the liquid and remove our "sandwich". I removed it and unrolled it with a big "ear to ear" smile because the "White Money" had turned into real Ugandan legal tender.
Black Money is then washed in certain solution
He said, i can keep the money and it was mine to spend (oh, thank you very much). I was hesitant to believe him until he said; we wait another minute for the money to dry and we walk together into the bank and deposit it on my account. I said, that's is OK, because the bank has all the machinery to detect fake money (little did i know that it was part of the plan, to make me believe the whole story). we walked back into the bank, i picked a cash deposit slip, went to the teller and banked the 60K onto my account, 40K that we had made from the white money + 20K he had pulled out of his wallet (wow, this guy is loaded). The money passed all the bank tests and we walked out of the bank into his car again.

Now here is the catch 22 for me; We need more original money to convert the remaining "white money", because he uses real money to wash white money in the so called expensive chemical, and this time we have to do a bulk conversion, in the sums of 20 Millions, not only 3 notes in a "Rwenzori bottle"!

So how much do you have? he asked .... i have no money. (True, i had no money, i was from banking aka 300K cheque and am a salary earner waiting for pay day). To be honest, if i had like 3 million on my bank account i was going to walk straight back into the bank and withdrawal it and give this guy to convert white money, because he had promised 50/50 split of the converted cash + i take back my original money (i forgot to tell you that he marks the original money with a pen before sandwiching it between the white money), and we were going to go to any place of my choice, be it my home to do the bulk conversion and that looked genuine.
wash wash money scam
So i should thank my "being broke" for saving my "would be sorry *ss", ... but wait a minute, i can borrow some cash and we go ahead with the "bulk money washing deal", i told him. he put a light smile on his preying face and said "GOOD". I could park my car at a money lender, pick about 5 millions, we go wash it in about 5 hours, we come back, pay back the money lender + interest, pick my car and everyone can go their separate ways smiling. That looked workable for me. But again, my car had a small mechanical fault and i had already called the mechanic to come and pick it, so i told him to call me tomorrow after the car is fixed ("delay" becomes the second savior in this scam).

So we exchange contacts, and go our separate ways, he had asked me not to tell anyone but keep it a secret because he was accessing the "white money" on a black market.
I should say the delay really saved me a lot, because when i went back to office, i calmed down and being the curious person that i am, i wanted to know more about this "white money". And because i hard promised to keep a secret (also i didn't want to blow my shortcut to being rich! :-) greedy, huh?), so i had no one to turn to but my usual friend "GOOGLE" (Google becomes the third savior in this scam).

I was shocked by the results; "White Money" is a SCAM that used to be called "Black Dollar" in America or "Black Money" or "Wash Wash Scam" and right now it's living next door, in my country Uganda, and i was just about to become a victim. what a big relief? yes am sad i had already budget for that money i was going to make! hmn? but am very happy i escaped the preying hands of the con artists.

There is No short cut to riches and wealth, that's greed and it has destroyed many. I was about to handover my car to a money lender and return empty handed!

Am lucky and i think it was for a good cause, so i can expose this scam before it leaves my fellow Ugandan's miserable and in debt.

Share this article as loud as you can and as far as your social network can go. Save your friend's money before the preying hands of these con men can get to it.

I love ya all.

"Your Techie Guy"

Monday, August 25, 2014

I deleted my glibc using "rpm -e --nodeps" rhel 6.2 "/lib64/ bad ELF interpreter: No such file or directory"

This is by far the lamest thing i have ever done as a linux sys admin, but believe me you; "It happens to the best of us" :-(
someone on the internet equated deleting the glibc module to "surgically removing your kidneys, heart or brain."
And that's true, my system came crushing after deleting glibc!

This is how events unfolded, i was honestly trying to upgrade my glibc module but "yum update" was not helping so i became impatient and decided to remove the current version of glibc and replace it with a higher version (i know the gurus are shaking their heads and saying "how could you even think like that?" But, yes, this uncouth method worked for me when i was upgrading the openssl module, and i thought the glibc module wasn't anyhow different! my fault).


so i thought i would do these two little steps to upgrade my glibc from glibc-2.12 to glibc-2.14

# rpm -e --nodeps glibc-2.12-1.47.el6.x86_64
# rpm -ifvh glibc-2.14.1-14.28.3.x86_64.rpm

As soon i finished entering the first command, all the cli commands went black! i.e.

# grep
-bash: /bin/grep: /lib64/ bad ELF interpreter: No such file or directory
# vi
-bash: /bin/vi: /lib64/ bad ELF interpreter: No such file or directory
# ls
-bash: /bin/ls: /lib64/ bad ELF interpreter: No such file or directory
# /usr/bin/yum
-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory

More symptoms:
1. No new remote login sessions can be established
2. Even the console login fails

So i went for a reboot hoping for a miracle to happen but still no luck, it was showing a black screen with some error like "Kernel Panic - not syncing: Attempted to kill init!"
Kernel Panic
Am sure you landed on this page because you are going through a similar problem, so to spare your time, here is how i managed to recover my server (by the way this server had cacti and speedtest services running on it, we are talking about 3 months of hard work about to be put to waste, i was in panic mode but the good news is that i recovered :-)).

Problem Solved:

what do you need?
1. Bootable Linux DVD, preferable the same version as your broken installation.
2. Physical access to your server (sorry if your server is in Iraq and you are in America, you might need a friend in Iraq :-) )
3. Flash disk
4. glibc rpm file, same as the one you just messed up; you can download it from here.

What did i do?
1. Change the boot sequence of your server to boot from CD
2. Insert the linux bootable DVD
3. Restart your server
4. Select "Rescue Installed System"
Rescue installed system
5. Follow that simple procedure
6. Your server installation will be mirrored to /mnt/sysimage/
7. Put the glibc rpm file on a flash disk
8. Insert the flash disk and mount it
#dmesg (to see the name of the device so you can mount it, e.g. sdb1)
#mkdir /mnt/sysimage/media/flashdisk/ (create a mount point in your rescued system image)
#mount -t vfat /dev/sdb1 /mnt/sysimage/media/flashdisk/
#rpm -Uvh --root=/mnt/sysimage --force /mnt/sysimage/media/flashdisk/glibc-2.12-1.47.el6.x86_64.rpm

9. Command (8) should run properly with no serious errors.
10. Confrim that the module was installed properly #rpm -qa | grep glibc 
11. Restart the server #reboot
12. Your server will reboot twice and you should be good to go.
13. Big Relief

Wednesday, August 20, 2014

ip route add - rhel 6.2 and making the route persistent through server reboots

Here is how to add an ip route on the rhel 6.2 command line.

ip route add prefix dev interface src interface_ip via gateway

For example:

ip route add dev eth3 src via

To make this change persistent after server reboots, add the command to the /etc/rc.local script.

# more /etc/rc.local 
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
ip route add dev eth3 src via

Friday, August 15, 2014

How to subscribe to Airtel Uganda's monthly free 20MB Data Bundle?

You only have to dial this code once, *175*20# and you will have subscribed to Airtel Uganda's monthly free 20 MB data bundle. The bundle is automatically renewed every 30 days.
dial *175*20# for free 20 MB on Airtel Uganda

Wednesday, August 13, 2014

Cacti graphs NOT returning the actual interface traffic throughput statistics (bits/sec)

Having successfully installed and configured cacti on RHEL 6.2, i was very excited and i couldn't wait to start monitoring my routers and switches. I work in a network that has over 100 Routers and 500 Switches, and you can imagine what a relief cacti was going to bring to my life!

However, my happiness was short lived after i graphed my first interface and cacti returned wrong values for the bandwidth utilization. This was a high speed interface (Gigabit Ethernet), that carries all our mobile internet traffic and the current throughput was about 400 Mbps, yet the cacti graph was reporting a maximum of 120 Mbps and the graph appeared like it was dropping traffic (crazy graph)! see screen shot below:


when you try graphing a high speed interface using SNMPv1 and 32-bit counters in cacti
There was no way i was going to believe this graph, because another proprietary tool was reporting 400 Mbps and my link was very stable. Plus, i logged in the router and ran the interface statistics command and observed an average of 350 Mbps. This meant two things; my cacti tool had issues! or my router doesn't love cacti! at first i suspected the router because it's a HUAWEI NE40 and i have a bias when it comes to Chinese equipment! On so many occasions they have fallen short of the standard protocols. but i was wrong this time, the router is perfect, it was my cacti installation that had issues!

Like always i hit Google to find some answers and below is what i discovered before i finally fixed my cacti installation (Am super excited i did, and if you are in the same situation, i wish you the best).

Below are the lessons i learned, call them solutions:


1. For high speed interfaces, you should use 64-bit counters if the device you are trying to monitor supports them. (refer to this article)
High Speed interfaces (100 Mbps or above)
  • ifHCInOctets1. (64-bit Octets in counter)
  • ifHCOutOctets1. (64-bit Octets out counter)
  • ifHCInUcastPkts1. (64-bit Packets in counter)
  • ifHCOutUcastPkts1. (64-bit Packets out counter)
  • ifHighSpeed1. (An estimate of the interface's current bandwidth in units of 1Mbps)
Low Speed interfaces
Lower speed interfaces can get by with 32-bit counters. If you use 32-bit counters on high-speed interfaces, they can wrap quickly; a 10 Mbps stream of back-to-back, full-size packets causes ifInOctets to wrap in just over 57 minutes. At 100 Mbps, the minimum wrap time is 5.7 minutes, and at 1 Gbps, the minimum is 34 seconds
  • ifInOctets1. (32-bit Octets in counter)
  • ifOutOctets1. (32-bit Octets out counter)
  • ifInUcastPkts1. (32-bit Packets in counter)
  • ifOutUcastPkts1. (32-bit Packets out counter)
  • ifSpeed1. (Currently negotiated speed of the interface - Max: 4.294 Gbps)
2. This was a great piece of information to land on, and i thought my problems where solved! but i was yet to learn more. I deleted the graph i had created with 32-bit counters and created one with 64-bit counters and hoped for the best. But sorry, the graph came out just as before, crazy!
Another hour bouncing around Google, i found out that 64-bit OID counters are only supported in SNMPv2 yet i was still using SNMPv1!

3. To confirm if my router can support 64-bit OIDs, i tried an SNMPWALK from my cacti server and it returned the correct values. replace the community_string with your actual community string e.g "public" and ip_address with the ip address of the router you are trying to monitor.

//64-bit Octets In Counter
snmpwalk -v2c -c community_string ip_address
//64-bit Octets Out Counter
snmpwalk -v2c -c community_string ip_address

4. At this point, i was using 64-bit counters and SNMPv2 for the snmpwalk test above, so i thought it was a done deal (problem solved!). i deleted the device from cacti and created it again using SNMPv2 and created the graph using 64-bit counters (combined two of the information pieces that i had learnt), and this time round, the graph was empty :-(, And whenever i would try running snmp query in debug mode via cacti, the query was successful but "NO SNMP DATA RETURNED!!!!!"

5. Google again was my immediate friend, and after about 5 hours of reading other people's problems, i landed on my third piece of important information; The php-snmp module requires a version of PHP 5.4 and above to be able to handle "snmpbulkwalks" used in SNMPv2. Refer to this article for details.

6. I was running PHP 5.3 at the moment and i never had PHP-SNMP module installed, i think my installation was using NET-SNMP to do snmpwalks which if you are only dealing with SNMPv1 should be enough to get you cacti working. See how i installed and enabled the PHP-SNMP module here.

7. I upgraded my PHP installation to version PHP 5.5, enabled the PHP-SNMP module, restarted Apache and everything was smooth afterwards. The snmp "Verbose Query" was returning data, i re-created my devices with SNMPv2 and tested. See how my graph returned the correct values (400 Mbps) and it was smooth & accurate. I wish the same for you. Have fun :-)

Cacti Monitoring High Speed Interfaces with SNMPv2 and 64-bit counters

PHP Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting

I was getting this warning in my cacti log whenever i would run the poller.php script in my cacti installation.
And my cacti graphs had the wrong time (i.e. my graphs were 2 hours behind my current time).

"PHP Warning:  strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /var/www/html/cacti/include/global_constants.php on line 167"

PHP warning: date()

1.  Find the php.ini file

# find / -name php.ini

2. Edit this parameter to fit your timezone

; Defines the default timezone used by the date functions
date.timezone = "Africa/Kampala"

3. You can get your system timezone from this file

# more /etc/sysconfig/clock 

4. Restart Apache

# /etc/init.d/httpd restart

5. The warning should stop and your graphs should show the correct time.

Change system Date and Time - Linux


I want to adjust the system date and time


1. Run the command "date" to get the current system date and time, and also the string format because you are going to use the same format in the next command.
# date
Wed Aug 13 14:52:35 EAT 2014

2. Use this command to set the correct date and time.
# date --set="Wed Aug 13 15:18:00 EAT 2014"
Wed Aug 13 15:18:00 EAT 2014

3. Check if the system time is consistent with the hardware clock
# hwclock --show
Wed 13 Aug 2014 03:59:24 PM EAT  -0.516957 seconds

4. Use the system date and time to update the hardware clock
# hwclock --utc --systohc

Tuesday, August 12, 2014

Cacti Variables- PHP SNMP Support: no, PHP SNMP Not Installed

When i load my cacti "about.php" page, at the bottom, under Cacti Variables, i see:
PHP SNMP Supportno

And also clicking on the "System Utilities > Technical Support" Page, under PHP Information, i see:
PHP SNMP                                                                                                       Not Installed

The problem was i didn't have the php-snmp packages installed on my server!
# rpm -qa | grep php

1. Find the php-snmp package that matches your php version and install it:

# yum install
Loaded plugins: product-id, replace, security, subscription-manager
Updating certificate-based repositories.
Setting up Install Process
php55w-snmp-5.5.15-1.w6.x86_64.rpm                                                                                                                                                                        |  30 kB     00:00     
Examining /var/tmp/yum-root-M9Lg4I/php55w-snmp-5.5.15-1.w6.x86_64.rpm: php55w-snmp-5.5.15-1.w6.x86_64
Marking /var/tmp/yum-root-M9Lg4I/php55w-snmp-5.5.15-1.w6.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package php55w-snmp.x86_64 0:5.5.15-1.w6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

 Package                                           Arch                                         Version                                              Repository                                                             Size
 php55w-snmp                                       x86_64                                       5.5.15-1.w6                                          /php55w-snmp-5.5.15-1.w6.x86_64                                       107 k

Transaction Summary
Install       1 Package(s)

Total size: 107 k
Installed size: 107 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : php55w-snmp-5.5.15-1.w6.x86_64                                                                                            
Installed products updated.
php55w-snmp.x86_64 0:5.5.15-1.w6                                                                                                                                                                                               
# rpm -qa | grep php


2. Restart Appache:

# /etc/init.d/httpd start
                                                          [  OK  ]
3. Test Again, should look like below:

PHP SNMP Installed
PHP SNMP Support: yes

Error:Package:php5.4 Requires:


I was trying to update my PHP from version php-5.3.3 to version php-5.4.3 using:
 "yum install php56w.x86_64"

I kept running into this error, yet i had openssl installed and all it's libraries running fine:
# yum install php54w.x86_64

Loaded plugins: product-id, replace, security, subscription-manager
Updating certificate-based repositories.
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php54w.x86_64 0:5.4.31-1.w6 will be installed
--> Processing Dependency: php54w-common(x86-64) = 5.4.31-1.w6 for package: php54w-5.4.31-1.w6.x86_64
--> Processing Dependency: php54w-cli(x86-64) = 5.4.31-1.w6 for package: php54w-5.4.31-1.w6.x86_64
--> Processing Dependency: php54w-cli = 5.4.31-1.w6 for package: php54w-5.4.31-1.w6.x86_64
--> Processing Dependency: for package: php54w-5.4.31-1.w6.x86_64
--> Processing Dependency: for package: php54w-5.4.31-1.w6.x86_64
--> Processing Dependency: for package: php54w-5.4.31-1.w6.x86_64
--> Processing Dependency: for package: php54w-5.4.31-1.w6.x86_64
--> Running transaction check
---> Package php54w.x86_64 0:5.4.31-1.w6 will be installed
--> Processing Dependency: for package: php54w-5.4.31-1.w6.x86_64
--> Processing Dependency: for package: php54w-5.4.31-1.w6.x86_64
--> Processing Dependency: for package: php54w-5.4.31-1.w6.x86_64
--> Processing Dependency: for package: php54w-5.4.31-1.w6.x86_64
---> Package php54w-cli.x86_64 0:5.4.31-1.w6 will be installed
--> Processing Dependency: for package: php54w-cli-5.4.31-1.w6.x86_64
--> Processing Dependency: for package: php54w-cli-5.4.31-1.w6.x86_64
--> Processing Dependency: for package: php54w-cli-5.4.31-1.w6.x86_64
--> Processing Dependency: for package: php54w-cli-5.4.31-1.w6.x86_64
---> Package php54w-common.x86_64 0:5.4.31-1.w6 will be installed
--> Processing Dependency: for package: php54w-common-5.4.31-1.w6.x86_64
--> Finished Dependency Resolution
Error: Package: php54w-cli-5.4.31-1.w6.x86_64 (webtatic-testing)
Error: Package: php54w-cli-5.4.31-1.w6.x86_64 (webtatic-testing)
Error: Package: php54w-5.4.31-1.w6.x86_64 (webtatic-testing)
Error: Package: php54w-common-5.4.31-1.w6.x86_64 (webtatic-testing)
Error: Package: php54w-cli-5.4.31-1.w6.x86_64 (webtatic-testing)
Error: Package: php54w-5.4.31-1.w6.x86_64 (webtatic-testing)
Error: Package: php54w-5.4.31-1.w6.x86_64 (webtatic-testing)
Error: Package: php54w-cli-5.4.31-1.w6.x86_64 (webtatic-testing)
Error: Package: php54w-5.4.31-1.w6.x86_64 (webtatic-testing)
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest


I upgraded my current version of openssl from openssl-1.0.0e-fips to OpenSSL 1.0.1e-fips and i was able to upgrade my PHP to 5.4

This is what i did:

1. Force remove the current openssl packages:

# rpm -e --nodeps openssl10-libs-1.0.1e-1.ius.el6.x86_64
# rpm -e --nodeps openssl-devel-1.0.0-20.el6.i686
# rpm -e --nodeps openssl-1.0.0-20.el6.i686

2. Install a new version of openssl

# rpm -ifvh /var/tmp/yum-root-M9Lg4I/openssl-1.0.1e-15.el6.x86_64.rpm 
warning: /var/tmp/yum-root-M9Lg4I/openssl-1.0.1e-15.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:openssl                ########################################### [100%]
# openssl
OpenSSL> version 
OpenSSL 1.0.1e-fips 11 Feb 2013

3. Force remove all the current packages of php 5.3

# rpm -qa | grep php

4. Install the new packages of php 5.4 

# rpm -qa | grep php

5. Restarted apache and everything tested OK.
upgrading php to 5.4.31 on RHEL 6.2

Thursday, August 7, 2014

Cacti - Messed up my graph template

I was playing a round with importing new data interface-traffic templates into my cacti installation and i ended up with thumbnail graphs for all the new interface graphs that i would create.
Graphs became thumbnails in cacti

I went to Templates > Data Templates and deleted the SNMP (INDEXED) - dot3Stats(RFC1643) template that made my graphs disappear.
Delete the data template
And a gain i went to Templates > Graph Templates and deleted all the items associated with the problematic template.
Delete Graph Template Items
And my graphs recovered :-)

Wednesday, August 6, 2014

Working with iptables - Linux centOS

Follow this link to learn, understand and successfully setup your linux (centOS) server firewall. I used this link to write a script for my server firewall, every time i wish to add an entry into my iptables, i just edit and run the script. With just iptables, i have been able to keep the bad guys out of my server.
Working with Linux iptables to create a firewall

Friday, August 1, 2014

Send Money from Anywhere in the world to Uganda-MTN Mobile Money Account - World Remit

World Remit is by far the; quickest, easiest, cheapest and most convenient way to send money from anywhere in the world to an MTN Mobile money account in Uganda. I have used this twice and i will use it again and again ("Nera Nera") to send money to Uganda.

From my humble room in Brescia, Italy, using World Remit's Online Money Transfer, i was able to send money from my MasterCard (Debit Card) to the remotest village in Uganda via MTN Mobile Money.
To be honest, i don't think sending money from abroad to Uganda can ever get this easier and convenient!

This saved me the hustle (+ transport fees) to go around town looking for money transfer services, and it also saved my recipient the hustle (+ transport fees) of looking for money transfer outlets to receive the money.
let's face it, we are all used to the traditional money transfer services; Western Union + MoneyGram, and these are always in Banks, in fully urbanized centers, without forgetting the Bank queues to send and receive money.
Send Money from the comfort of your room to Uganda, MTN Mobile Money
World Remit solved the equation, i get to send money from the comfort of my room and my recipient gets to receive it on his/her phone, and considering that Mobile Money is everywhere in Uganda including the remotest villages in the country; means you can send money from as far as Texas, USA to Buhweju, Uganda (my Dad's Village, which for me is the remotest place on earth :-)).

World Remit has other pay-out options like; Bank Deposit, Cash Pickup, but for me MTN Mobile Money is the winner.

Send Money from Abroad to Uganda, MTN Mobile Money