The AAIMI Project

Various AAIMI devices and interfaces. Picture: Anthony Hartup.

Active Autonomous Independent Machine Interface

AaimiServerTools

These programs aim to automate tasks on web-servers. They are configured for an Apache server on Raspian Linux, but they'll work on other servers with minor path adjustments.

AaimiServerDog

AAIMI Server Dog is a Python server-monitoring script for htaccess-protected Apache2 web servers running private web sites and applications.

It produces lists of suspicious access attempts based on usernames and passwords, IP addresses and connection methods. You then embed the logs for viewing in the admin section of your website or web application.

In the image below you can see the creatures that come knocking on your router at night if you run a web-facing server.

The readout from AAIMI Server Dog showing unauthorized access attempts on an Apache web server. Picture: Anthony Hartup.
The readout from AAIMI Server Dog showing unauthorized access attempts on an Apache web server. Picture: Anthony Hartup.

In the current version the program just monitors these attempts. In the upcoming version two, AAIMI also attempts to identify the culprits via DNS lookups and reverse DNS lookups, and also compares each visitor against a blacklist of IP address and domains. It now monitors open TCP ports as well, once again identifying the domains connecting.

The full setup tutorial is at Anth's Computer Cave.



AaimiSiteMod

.

AaimiSiteMod is a Python tool to perform server-wide modifications on web pages. This allows you to modify standard features on hundreds of web pages at a time to deal with unexpected changes to your website.

Ideally you'll have designed your website in a way that doesn't require changing every-single page to make general site-wide changes. You can generally achieve this using CSS for layout, and loading dynamic content with PHP or JavaScript. It is difficult, however, to cater for every possible scenario, and here's where AaimiSiteMod comes in.

Usage scenarios

Let's say you write a lot of articles, and for some topics you like to include helpful links to a specific external website to help your readers. Now imagine that website shuts down, and you have an unknown number of articles with links helpfully pointing to a site that doesn't exist. If you only have a few articles you could easily open each file and change the link to an alternative site. But what if you have hundreds of articles?

Another scenario would be a product re-branding. If you decide to rename a product you feature heavily on your website, I can take hours of work combing through each page, and you are almost certain to miss a few instances.

The first task I set AaimiSiteMod was to modify links on Anth's Computer Cave as part of the transition to HTTPS. The program crawled every page in the Cave and converted every old 'http://anthscomputercave.com' link to 'https://anthscomputercave.com'. Although there were only one or two of these old http hard links on each page, changing these manually on 120 pages would have taken me hours and invited typos and other mistakes. AaimiSiteMod ripped through the hundred-odd pages in a couple of minutes.

Sure, changing 'http' to 'https' on specific links is fairly basic, but you can find and substitute complex strings, even entire blocks of code in some cases, like nav panels and forms.

You can find setup and usage details at Anth's Computer Cave.