System administration

I have a wide range of knowledge having worked with both GNU/Linux and Microsoft Windows for many years. Below is a list of the operating systems which I have experience with:

  • GNU/Linux
    • Debian v3 - v8 I have used various versions of Debian and Ubuntu for both server and desktop use since 2003.
    • Ubuntu v5.04 - current / Linux Mint 17.2 - current I have used Ubuntu and Linux Mint mainly as a desktop system but experimented using it as a server using virtual machines.
    • Redhat, Suse (some experience) I have experimented with some other Linux distributions to some extent but do not have experience running production systems using anything other than Debian and Ubuntu other than running a Red Hat server for a short time.
  • Microsoft
    • MSDOS v5 - v7 I started using PC's while still at school back in 1990. At that time they where running early versions of MS DOS and windows 2.
    • Windows v3.11 - v10 Microsoft Windows was my main operating system for my desktop computers from about 1993 to 2001 when I started using GNU/Linux as a desktop OS. I still however run current versions of windows either on a hard drive partition or virtual machine in order to keep up to date so I am able to continue to offer support to Windows users which I do on a regular basis through IT Surgery and home visits.

Being mainly concerned with Webserver Administration my main area of knowledge is GNU/Linux, which I have always used for this purpose because I believe it to be more secure, more reliable and of course its free! I have been running my own hosting company and Debian webserver since 2003 at MORETONHAMPSTEAD.NET for which I am responsible for all system administration and customer technical support at all levels. Some of the elements of running a GNU/Linux system of which I have experience follow:

  • Command line administration (remote and local)
  • File systems (partitioning, LVM)
  • Boot process (grub/lilo, init, runlevels)
  • Kernel Modules and device drivers (modprobe, lsmod, modules.conf)
  • User management
  • Process management and System performance (top, ps, kill)
  • Networking
    • Configuration (ifconfig, interfaces)
    • Wireless (security, WPA, WEP)
    • DHCP
    • Network analysis (nmap, iptraf)
    • Security (firewall, iptables, fail2ban)
    • VPN (OpenVPN, server and client configuration)
    • VNC
  • GUI (X, Gnome, KDE, xfce)
  • Package management (dpkg, aptitude, rpm)
  • Compiling from source (kernel configuration, application software)
  • Scripting (Bash, Perl, Python)
  • Scheduled tasks (crontab)
  • Services (installation, configuration and maintenance)
    • Network shares (samba, nfs, sshfs, ftp, permissions & security)
    • Openssh (sshd.conf, security)
    • Mail server (Exim, POP, IMAP, SMTP, virtual users, spamassasin, clamav)
    • Webmail (squirrelmail, roundcube)
    • Apache Web Server
      • httpd.conf
      • Virtual hosting
      • Modules (installing, enabling, configuring , disabling, uninstalling)
      • Configuration Directives
      • SSL (configuration, certificates, keys)
    • Database (MySQL, phpmyadmin, Postgresql)
  • Webalizer web-stats
  • Log analysis
  • Virtual machines (Installation, local and remote management, virtual networks)
  • Administrative control panels (webmin, cpanel, plesk)

I do also have some experience with configuring MS Windows systems.

  • OS and software installation and removal
  • User management
  • Networking (configuring clients, connecting to shares, mapping drives, printing)
  • Process management and system performance (task manager)
  • Security (firewall, AV, update manager)

Below is a list of some of the applications I am familiar with.

  • Office (MS Office 97-2010, OpenOffice/LibreOffice, Word, Spreadsheet, Database, etc.)
  • Imaging Software (Photoshop v7 - CS4, GIMP)
  • Website development (Dreamweaver, Kompozer/NVU)
  • FTP and networking (Filezilla, SSH, Putty)
  • Browsers (Firefox, Chrome, Internet Explorer)

Website Development and programming

I have been developing websites since my collage days in 1994 when coding HTML was the only way to do it. Since then I have experimented with various web authering software but gone back to using code which now of course includes CSS. Since around 1997 I found myself getting more and more involved in server side programming (using PERL at the time and PHP more recently) as clients wanted more functionallity to their websites. Below is a list of some of the technologies I am familiar with:

  • HTML (4, 5)
  • CSS (2.1, 3)
  • Javascript (jquery, DOM scripting, Ajax)
  • PHP (4, 5)
    • Object oriented design
    • Libraries (PEAR)
    • Frameworks (CakePHP, smarty)
  • Perl (CGI, Apache ModPerl, OOP, CPAN)
  • MySQL Database
    • Administration
    • Efficient Relational database design
    • Query design
  • Web Software (installation, configuration, maintenance)
    • Wordpress (administration, template customisation, plugins)
    • CMS Made Simple
    • GINAS (Apache Perl module I wrote which parses tags within HTML for tasks such as returning formatted database query results)
    • SWE (Simple Website Editor back-end written by myself in PHP, JS and Ajax using Mercury front-end)
  • Techniques
    • Web standards
    • Accessibility
    • Cross browser compliance
    • SEO
    • MVC architecture
    • API's
    • JSON
    • RESTful