Sysadmins of the North is just another technical blog, like so many others out there. Most posts are written in English, some in Dutch. For the most part, I write as it comes; posts may seem incoherently written sometimes (my apologies). Here on you’ll find all kinds of computer, server, web, sysadmin, database and security related stuff. Browse the latest posts per category here, search for posts, or make a selection from the categories menu.

Drop me a comment somewhere to say hi, or discuss about security, website or WordPress, MySQL optimization and performance, Windows Server and IIS web server topics.




WordPress 3.9.2 Security Release fixes XML-RPC DoS

WordPress 3.9.2 is now available as a security release for all previous versions. We strongly encourage you to update your sites immediately. This release fixes a possible denial of service issue in PHP’s XML processing, reported by Nir Goldshlager of the Product Security Team. It was fixed by Michael Adams and Andrew Nacin of the WordPress security team and David Rothstein of the Drupal security team. This is the first time our two projects have coordinated on joint security releases.

Read more

Mod_evasive on IIS

Website DDoS protection with .htaccess and mod_evasive on Windows IIS.

Mod_evasive is a module for Apache and Windows/IIS (with Helicon Ape), to provide protection and evasive action in the event of an HTTP DoS-, DDoS or bruteforce attack. Detection is performed by creating an internal dynamic hash table of IP Addresses and URIs, and denies an IP address access to a website if it’s requesting the same page more than 10 times a second. This is configurable. Properly configured and tested, mod_evasive can provide great security and protection against Denial of Service (DoS)- or Distributed Denial of Service (DDoS), and bruteforce attacks.

Read more

WordPress XMLPRC

Huge increase in WordPress xmlrpc.php POST requests

WordPress xmlrpc.php DDoS and user enumeration attacks: huge increase in HTTP POST requests, how to identify and leverage these xmlrpc.php brute-force and user enumeration attacks.

Since today, I notice a huge increase in HTTP POST requests on WordPress xmlrpc.php, on multiple websites. These xmlrpc.php wordpress attacks could be related to WordPress’ xmlrpc.php pingback DDoS vulnerability discoverd last March and reported by Sucuri, or it may be related to the WordPress pingback vulnerability reported by Acunetix. But it might be something new as well…

Read more

Remove IIS Server version HTTP response header

How to remove unnecessary HTTP response headers in IIS 7, 7.5, 8.0 and ASP.NET.
Windows IIS loves to tell the world that a website runs on IIS, it does so with the Server HTTP response header, as shown below. In this post I’ll show you how to rewrite and remove unwanted response headers in IIS, because we don’t want to give hackers too much information about our servers.

Read more

6 Tips to improve Joomla! performance

Joomla! performance tuning on Windows Server IIS

In this article, I’ll show you how to optimize Joomla! on Windows Server IIS with just three six (6) important, but basic, performance tips. Everyone wants a fast loading website, whether it’s based on WordPress, Drupal, Joomla, or something else. For WordPress, a lot of posts are available here to optimize WordPress performance, and Drupal can easily be improved with the BOOST module.

But what about Joomla? How can we optimize and improve Joomla!’s performance and speed easily? Here are three six (6) simple tips…
Read more

Decoupling Umbraco from your front-end website

Jason Deacon, from Australia’s design and development company Wiliam , writes about how to use a back-end instance of Umbraco 7, which is completely decoupled from the front-end (an ASP.NET MVC 5 site).

Decoupling Umbraco
Our approach leverages a file called “Umbraco.config” which is really just a XML file which Umbraco publishes all its public content to whenever a node is published in the interface. This XML structure mirrors the document types and properties of the site structure populated in Umbraco and therefore offers the perfect snapshot of the content the site can serve, without having to query a database for it.

Read Decoupling Umbraco from your front-end website.

MySQL database optimization with indices

Why MySQL indexes are so important

At Vevida, we like to help our customers as much as possible. Even with optimizing a MySQL database when they don’t ask for it (when they don’t know performance can be improved), for example by adding an index because we spotted a slow query in our slow-query log. Indexes are used by MySQL to help find rows quickly. We want to make it as easy as possible for MySQL to find the relevant rows, the more precise or specific we are the less the number of rows MySQL has to fetch.

The other day I spotted the following in MySQL slow-query log:
Read more

Convert MySQL MyISAM tables to InnoDB

MySQL storage engine, MyISAM versus InnoDB: if you want to convert a MyISAM table to InnoDB, the process is fairly easy.

In the earlier days of MySQL, the default storage engine for your database was MyISAM. This is why you still encounter a lot of examples with engine=MyISAM online. Nowadays, the InnoDB storage engine is MySQL’s default. MyISAM is no longer actively developed, InnoDB is. Therefor, all/most MySQL performance optimizations are for the InnoDB engine and it’s wise to choose this as your table storage engine.

Read more

Send email with Ghost using SMTP authentication and TLS encryption

Ghost Publishing platform uses Nodemailer to send e-mails with Node.js. It can send e-mail using SMTP, sendmail or Amazon SES and is unicode friendly.

As you know, more and more web hosting providers require SMTP authentication (often abbrevated as SMTP AUTH) and a TLS encrypted connection to send email. Here you’ll find some script examples to send SMTP AUTH email over TLS with ASP, ASP.NET and PHP. Can we do the same with Ghost and Node.js?
Read more

Export and migrate WordPress to Ghost

import posts from wordPress in Ghost

A little while ago I installed Ghost on IIS, along with the required Node.js and iisnode module. All in an isolated test environment, in which Ghost runs as a production site only. Now I wanted to import a WordPress blog into Ghost, but failed.

Here’s how I resolved this particular Ghost import error.
Read more

OpenPGP.js, OpenPGP JavaScript Implementation

This just deserves some attention!

OpenPGP.js, OpenPGP JavaScript Implementation: “This project aims to provide an Open Source OpenPGP library in JavaScript so it can be used on virtually every device. Instead of other implementations that are aimed at using native code, OpenPGP.js is meant to bypass this requirement (i.e. people will not have to install gpg on their machines in order to use the library). The idea is to implement all the needed OpenPGP functionality in a JavaScript library that can be reused in other projects that provide browser extensions or server applications.”

“Zo versleutel je je e-mail met PGP”

Dutch tech-news site wrote an extensive article on how to use PGP to encrypt your email. The article is somewhat comparable with my article “Encrypt email with PGP/GnuPG” but dives deeper into the matter.

In Dutch: Zo versleutel je je e-mail met PGP

Don’t buy an Acer Aspire laptop

or at least, rethink it through before buying one

This is personal rant towards #Acer, with an advice undertone: really, really investigate the computer or laptop you want to purchase, because you might get an unhappy surprise that later on the laptop doesn’t meet your expectations.

Read more

Delete all MAILER-DAEMON emails in Postfix queue

Delete all MAILER-DAEMON emails in Postfix queue if it matches a sender or recipient email address condition. When a large scale spam run was sent through your mail servers, you need to clean up and remove those spam messages. Doing so guarantees normal, valid email messages being sent quickly and the spam messages never leave your queue. In Postfix, there are various similar commands to delete messages from the Postfix mail queue. Based on the Message-ID and/or email address…

Read more

Test MySQL database connectivity with ASP.NET, PHP, ASP

Test MySQL database connectivity with ASP.NET, PHP, ASP

Whenever you need to test the MySQL database connectivity from a website or server, it’s handy to have various test scripts nearby. Whether it is because you are setting up a new website or you have just installed a new server and are running your tests. Nowadays, many websites depend on a MySQL or MariaDB database because CMS systems like WordPress, Joomla and Drupal are so popular, and Umbraco too. You want your webserver to connect to MySQL fast and properly :)

Read more