Allow ping through a Cisco ASA

Here are the changes you need to make to allow clients on your LAN to ping through the Cisco ASA to a host on Internet/WAN. Basically, this is how to create a class map and a policy that uses the class map. Then, implement the policy.

class-map myclass
match default-inspection-traffic
policy-map mypolicy
class myclass
inspect icmp
service-policy mypolicy interface outside

iPhone 5s and evasi0n 7 1.0.1 lessons

Well, at least I was patient enough to wait until the panic died down about version 1.0.0 of evasi0n for IOS 7. My first attempt with 1.0.1 did not go too good. I ended up cutting my loses and restoring. I believe that part of my problem was that I did not have 7.0.4 installed. Other possible mistakes made: had the phone plugged in before firing up evasi0n, did not kill any applications, and did not restart my phone before like I ususally do. Also, I just hooked it up and went for it. As a result, I got stuck on the configuring system 2/2 portion. My response was to kill evasi0n on my computer and try again. Same thing. I rebooted the phone thinking I would definitely have to restore at this point, but I didn’t have too. I deleted the evasi0n icon, killed everything running and rebooted again. Once up, I tried again. It seemed to work this time, until it rebooted and would get stuck on the Apple screen. At this point, I had no choice but to restore. This is when I discovered that I did not have IOS 7.0.4. So, I upgraded and restored, and made sure everything checked out before I more cautiously tried again.

After I restored, I made sure I killed anything I had running/open and I rebooted. Once the phone was rebooted, I started up evasi0n (MacOS Mavericks) and then plugged in the phone. This time everything went flawlessly. When instructed by evasi0n on my computer, I hit the evasi0n icon on my phone. All went well. Note: quite a few reboots with this jailbreak (three or four if I recall).

Turns out I was still a little too early, since the Mobile Substrate had not yet been updated. As a result, pretty much nothing worked. Fortunately, Saurik quickly turned around an update to Mobile Substrate, now called Cydia Substrate. So, between that and PreferenceLoader update and the 3.0-1 update to TetherMe, it looks like I am back in business.

How to move a Windows 8 key to another machine or activate after a fresh installation.

On the old machine/installation, bring up an Administrator Command Prompt.

Enter the following to remove the product key:

slmgr.vbs -upk

From the new machine, go into Administrator Command Prompt.
Enter the following to activate the new machine by phone:

slui.exe 4

If you have already tried the Product key and got the message stating that the key can only be used once, you will be presented with a Windows with a phone number (855 toll free number), and a long string of numbers.

If you did not enter the product key, you will be prompted to Activate with a new key. I have not tested this, but I believe that you could enter your Product key. You should get an error. I would close the window, and try a “slui.exe 4″ again. I would think that would get you to the same screen.

Call the phone number.

You will be prompted to enter the long string of numbers.

Then, you will be asked for more information. I was asked how many computers the key has been used on. I answered one (the truth). I was then given a long string of numbers that I entered in the fields at the bottom of the window.

Once complete, I clicked Activate. My installation was successfully activated.

Finding/Replacing control characters in Excel.

While doing some database work, I found myself needing to replace extraneous tab characters in a couple columns in Excel. Here is how I was able to do it. This method could just as easily be applied to any other control character once you know the ASCII code.

Go into Find/Replace.

In the “Find what” field, just hold down the Alt key and enter 0009.

Release the Alt, and Find/Replace as you usually would.

This will find all the tab characters since 9 is the ASCII code for tab. You can do this for any other ASCII character as well, but I doubt that would come up very often.

MySQL ERROR 2006 – server has gone away while restoring.

I was getting the following errors when I was trying to restore a Request Tracker MySQL database in linux (Ubuntu to CentOS).

ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect…
Connection id: 10
Current database: rt4

ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect…
Connection id: 11
Current database: rt4

ERROR 2006 (HY000): MySQL server has gone away
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect…
Connection id: 12
Current database: rt4

These errors came later in the restore:

ERROR 1231 (42000): Variable ‘time_zone’ can’t be set to the value of ‘NULL’
ERROR 1231 (42000): Variable ‘sql_mode’ can’t be set to the value of ‘NULL’
ERROR 1231 (42000): Variable ‘foreign_key_checks’ can’t be set to the value of ‘NULL’
ERROR 1231 (42000): Variable ‘unique_checks’ can’t be set to the value of ‘NULL’
ERROR 1231 (42000): Variable ‘character_set_client’ can’t be set to the value of ‘NULL’
Query OK, 0 rows affected (0.00 sec)

ERROR 1231 (42000): Variable ‘collation_connection’ can’t be set to the value of ‘NULL’
ERROR 1231 (42000): Variable ‘sql_notes’ can’t be set to the value of ‘NULL’

To get the database restored, I had to change the maximum allowed packet setting.

The best way to do that is to add the following line to the [mysqld] section of the my.cnf (CentOS: /etc/my.cnf or Ubuntu: /etc/mysql/my.cnf):

max_allowed_packet = 16M

Then, restart your MySQL service.
Ubuntu: service mysql restart
CentOS: service mysqld restart

Now, I did this on both of my servers, then I could use my regular backup script and the setting would be picked up by the my.cnf. However, you can do the backup with option enabled if it is not in your my.cnf by using something like the following:

mysqldump $thedb –user=”myid” –password=”$SQLPWD” –max_allowed_packet=16M > $thedb.sql

Ubuntu, apache and using hostnames instead of directories for sites.

OS: Ubunutu 12.x
Web server: apache 2.x

So here is what I was trying to accomplish. I have a server with many sites in their own directories. I had one that I wanted to just use a hostname to access it. Now, I have done this many times in CentOS/Redhat, but never in Ubuntu, and it adds a little twist to the process. First the name needed to be added to the DNS. I created a CNAME, since I already had a name in for the server.


vi /etc/apache2/apache2.conf

NameVirtualHost *:80
<IfModule mod_ssl.c>
 NameVirtualHost *:443

cd /etc/apache2/sites-available

Created a file with a descriptive name of my site:


Added the following as appropriate for my site:

<VirtualHost *:80>
 ServerAlias some
 DocumentRoot /var/www/some

There are many other options you can add here, but this is where I started.

cd /etc/apache2/site-enabled
ln -s ../sites-avaiable/
service apache2 restart

Extract Windows 8 Product Key from BIOS

I used the following procedure to extract the Windows 8 key from a Lenovo desktop.

Download RW from: I used the 64-bit portable version.

Copy the Win64 directory from the zip to your local drive.

Execute the RW.EXE program in the Win64\Portable directory.

Once open, click the ACPI icon or select ACPI Tables from the menu.

Then, click on the MSDM tab in the ACPI Table window.

You will find the key in the bottom of the ACPI Table window.

How to create a Mavericks bootable USB drive.

I really don’t understand why Apple makes somethings so difficult for users. Since, Apple no longer distributes their OS upgrade installation media and they have no made an ISO/DMG easily available, we have had to figure out different ways to create a bootable media. For Lion and Mountain Lion it was pretty simple once you figured out how to find the DMG buried in the installation application. For Mavericks, it is different. You can find the DMG in the package, but using the same method does not produce a bootable media. Instead, you have to use createinstallmeda which is a program buried in the installation package.

You must be root to execute the program, so you su or sudo to gain root privileges. The volume is the name of you USB drive. It takes while to to create, but does work.

# /Applications/Install\ OS\ X\ –volume /Volumes/SanDisk –applicationpath /Applications/Install\ OS\ X\ –nointeraction
Erasing Disk: 0%… 10%… 20%…100%…
Copying installer files to disk…
Copy complete.
Making disk bootable…
Copying boot files…
Copy complete.

Here is the help output:

Usage: createinstallmedia –volume –applicationpath [--force]

Arguments–volume, A path to a volume that can be unmounted and erased to create the install media.
–applicationpath, A path to copy of the OS installer application to create the bootable media from.
–nointeraction, Erase the disk pointed to by volume without prompting for confirmation.

Example: createinstallmedia –volume /Volumes/Untitled –applicationpath /Applications/Install OS X

vSphere client in Windows 8.1

I could not get the vSphere client to install on Windows 8.1. I rebooted and it still didn’t work. It turns out that the client requires .Net Framework 2 or 3 to install. In Windows 8.1, it is a feature that just needs to be turned on. Go to Control Panel\Programs\Turn Windows features on or off. Then, check off .NET Framework 3.5 (includes .NET 2.0 and 3.0).

Once complete, you should be able to install the client.

Redirect certain subnets to a different site in Apache.

I did this from the httpd.conf where I have all my virtual directories defined. I just added the following within one of those virtual directory definitions and reloaded httpd. This will redirect anybody on the subnet to, and the others will proceed to the directory (/my/website/directory).

RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_HOST} !^192.168.0.*
RewriteRule .* [R=302,L]

In an .htaccess file you would just need to add the following:

RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_HOST} !^192.168.0.*
RewriteRule .* [R=302,L]

If you need to redirect the cgi-bin, elsewhere:

AllowOverride All
RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_HOST} !^192.168.0.*
RewriteCond %{REMOTE_HOST} !^172.16.0.*
RewriteCond %{REMOTE_HOST} !^10.0.0.*
RewriteRule .* [R=302,L]
Options ExecCGI
Options FollowSymLinks
Order allow,deny
Allow from all

Return top