Microsoft Updates Crippling Windows 2003 Servers

The updates bug I described in Windows XP back in October is now also locking up server computers.

I’ve had it with this.  Microsoft has clearly lost control of its security patches.

As of today, I am disabling Automatic Updates across the board; all devices and all versions.  Up-time is more important to me than monthly patches.

Microsoft Updates Crippling Windows XP

Screen shot of the related Neowin article
Check out the comments on this website.

As reported at Neowin, your Windows XP computer may be locked up due to bad updates being sent by Microsoft.  Two of mine were 🙁

The solution, which I found in the comments section of that article, tested, and confirmed on my own computers:

  1. Disable the Automatic Updates service.
  2. Stop the Automatic Updates service (reboot if necessary but do not kill svchost.exe)
  3. Install the correct update from Microsoft.  That link is for computers with IE8 only.  For older versions, check the article I mentioned above.
  4. Reboot the computer.
  5. Reset the Automatic Updates service to automatic and start it. (If you want more updates.)

This is a truly shameful problem for Microsoft’s reputation.

December 7, December 11, More Problems

The subsequent updates released by Microsoft have caused the same problem to occur again.  I’ve updated the link above with the newer patches.

To find newer patches, you have to do a complicated search at the Microsoft Download Center.

Per my latest article about Windows servers, I am now recommending everyone disable the Automatic Updates service on all Windows-based computers.

MySQL Password Errors

Since August 12 (about two weeks now), I was getting this error from the MySQL program mysqldump:

Warning: Using unique option prefix pass instead of password is deprecated and will be removed in a future release. Please use the full name instead.

I’m not sure what changed or what got upgraded, but I was able to track down the problem.  It has nothing to do with command syntax.

In the account directory, which is the one with the account name, one level above public_html, or just “~” on the command line, I found a file named “.my.cnf” with the “pass=” option in it.

To fix the problem, find that file and change “pass=” to “password=”.

I have also forwarded this information to the BlueHost help desk.

Client Certificate Authentication in IIS 6

Client certificates are a cool technology that, once setup, eliminate the need to use your password on your own website from your own devices.

This article wont run through the entire procedure for setting up a web server, Windows domain, file permissions, server certificates, or a certificate authority.  I just want to convey some of the configuration pitfalls that exist in IIS 6.

Step 1: Enable Client Certificate Mapping

The IIS Secure Communciations dialog box
Start with these settings.

Continue reading Client Certificate Authentication in IIS 6

PHP Array Assignment and References

This is a quick explanation of some more referencing quirks in PHP.

Let’s say you need to store an array in a specific variable so that another variable can be freed up and overwritten with different information.  [To clarify, this array may be very large and copying it would be detrimental to performance in this particular application. For small arrays, copying and not referencing may be preferable.]

The operation for referencing the array with a new variable is quite simple:

$array_goes_here =& $need_to_free_up_this_var;

The code above will reference the array to prevent PHP from making an unnecessary copy of the whole thing.

Now here’s what you have to avoid:

$need_to_free_up_this_var = array(); /* wrong! */

Continue reading PHP Array Assignment and References

How to Secure iPad VPN with Windows L2TP

VPN diagram showing both Windows and iPad remote clients.
Different protocols for different clients.

Back in August, I mentioned the importance of disabling most versions of PPTP for security reasons, and included my own tutorial for How to Secure a Windows VPN with PEAP.  That solution works great for Windows, but is not compatible with iPads.

Now I will offer a solution that works great for iPad, but may not work on Windows computers.  In addition, I will explain how to get the two solutions to work together securely so that both Windows and iPad computers will be able to connect to a Windows VPN simultaneously without using the insecure versions of PPTP.

The Layer 2 Tunneling Protocol (L2TP) is an obvious choice for the iPad because it is the only supported protocol other than the insecure PPTP option.  On the server side, however, there are some implementation nuances that could easily discourage the use of L2TP.  I took the time to research L2TP in more depth before writing this article, because I felt that a generic recommendation could leave readers totally confused about the security issues involved.  So before delving into a new tutorial, I want to explain two new concepts:  L2TP Pre-Shared Key, and L2TP NAT Traversal.

NAT Traversal could be a major concern for any L2TP implementation, because Microsoft wrote a very technical and rather intimidating knowledge base article called IPSec NAT-T is not recommended for Windows Server 2003 computers that are behind network address translators.  If you’ve seen that article, I want to assure you that the Microsoft recommendation is not relevant here.

A careful reading of the Microsoft recommendation against NAT-T will reveal that the underlying security problem with NAT-T is not a server problem but a client problem.  In other words, Microsoft recommends that Windows XP computers not attempt to use NAT-T to connect to privately-addressed servers.  The Windows 2003 server itself fully supports NAT-T out of the box and doesn’t even need to be configured to use it.  This is perfect for iPad users, because iPad also supports NAT-T out of the box, and this almost eliminates the address translation challenges of using L2TP.

Continue reading How to Secure iPad VPN with Windows L2TP